はじめに
Cocoon設定→インデックス→並び順の設定は、全てのページに一括で適用されてしまいます。
そのため、カテゴリーページや通常のインデックスなど、古い投稿が埋もれてしまいがちです。
そこで、フロントページの投稿の並び順だけを変更します。
この記事では、この方法について説明します。
実装手順
タブ一覧
以下のコードをfunctions.phpに追加します。
カテゴリーの並びをランダムに変更します。
add_filter('list_category_tab_args', function ($args, $cat_id) {
$args['orderby'] = 'rand';
return $args;
}, 10, 2);
カテゴリーごと
以下のコードをfunctions.phpに追加します。
新着記事の並びを更新順、カテゴリーごとの並びをランダムに変更します。
add_filter('get_category_index_list_entry_card_args', function ($args, $categories) {
if ($categories) {
// カテゴリーごとの並びをランダムに変更
$args['orderby'] = 'rand';
} else {
// 新着記事の並びを更新日順に変更
$args['orderby'] = 'modified';
}
return $args;
}, 10, 2);
カテゴリーごと(2カラム、3カラム)
以下のコードをfunctions.phpに追加します。
新着記事の並びを更新順、カテゴリーごとの並びをランダムに変更します。
// 新着記事の並びを更新順に変更
add_filter('get_category_index_list_entry_card_args', function ($args, $categories) {
if (empty($categories)) {
$args['orderby'] = 'modified';
}
return $args;
}, 10, 2);
// カテゴリーごとの並びをランダムに変更
add_filter('list_category_column_atts', function ($atts, $cat_id) {
$atts['random'] = 1;
return $atts;
}, 10, 2);
さいごに
今回紹介した方法を使えば、Cocoon設定の全体変更に影響されることなく、フロントページだけに限定して投稿の並び順(更新日順やランダムなど)を柔軟にコントロールすることができます。


