※社内専用

投稿の表示順を古い順(昇順)にしたい

  • HOME
  • EPRESS-BS
  • 投稿の表示順を古い順(昇順)にしたい

投稿の表示順はデフォルトでは新着順(降順)ですが、古い順(昇順)にしたいときの対応。

category-スラッグ名.phpにwp_queryを記述すれば対応可能であることは
ぱっとは思いつくが
複数の投稿のとき全てに記述するのは面倒なので
関数1つで対応可能か調べました。

以下で対応可能。
__setting.php

function myPreGetPosts( $query ) {
  if ( $query->is_category() && $query->query[category_name] == 'news'){
    $query->set('order', 'ASC');
  }

  }
add_action('pre_get_posts','myPreGetPosts');

■解説

カテゴリーかつ、

$query->is_category()

スラッグ名がnewsの場合

$query->query[category_name] == 'news'

順番を昇順にする。

$query->set('order', 'ASC');

複数の投稿で昇順にしたい場合

function myPreGetPosts( $query ) {
  if ( $query->is_category() && $query->query[category_name] == 'news' ||
        $query->is_category() && $query->query[category_name] == 'brog'){
    $query->set('order', 'ASC');
  }

  }
add_action('pre_get_posts','myPreGetPosts');

とかとか