WordPressで投稿の表示順を古い順やランダム順などにカスタマイズする
この記事の内容
投稿を古い順に表示する
カテゴリページなどで表示される投稿は新しい順に一覧表示されますが、何らかの手順をまとめたカテゴリなど、古い順に時系列で表示したいカテゴリもあります。次の例では、投稿がステップ(3)からステップ(1)へと表示されますが、手順を追いかけるページなので逆にした方が読みやすいかもしれません。
その場合、テーマのfunctions.phpに次のように記述します。
function my_pre_get_posts($query) { if (is_category('app')) { $query->set('order', 'ASC'); } } add_action('pre_get_posts', 'my_pre_get_posts');
ここでは、「app」というスラッグのカテゴリページで投稿を古い順番に表示しています。使われている命令を簡単に紹介します。
- is_category('app') → もしもappカテゴリならば
- $query->set('order', 'ASC'); → 表示順(order)を昇順(ASC:ascending order:小さい順のこと)に
これにより、指定カテゴリの投稿が古い順に表示されるようになります。
投稿をランダム順に表示する
クイズのページなど、一覧表示するときに表示順をシャッフルしてランダムな順番で表示したい場合、「$query->set('orderby', 'rand');」と指定します。
function my_pre_get_posts($query) { if (is_category('yomenai')) { $query->set('orderby', 'rand'); } } add_action('pre_get_posts', 'my_pre_get_posts');
これにより、カテゴリページで投稿がランダム順に表示されるようになります。