WordPressで投稿の表示順を古い順やランダム順などにカスタマイズする

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');

これにより、カテゴリページで投稿がランダム順に表示されるようになります。

漢字クイズがランダム順に表示される
漢字クイズがランダム順に表示される