投稿日:2017/05/15
投稿の表示順はデフォルトでは新着順(降順)ですが、古い順(昇順)にしたいときの対応。
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');
とかとか