はじめに
カルーセルはデフォルトで人気記事を表示しますが、その並び順は以下の通りで、必ずしも人気順ではありません。
- ランダム
- 投稿日(降順)
- 更新日(降順)
そこで、記事を人気順に並べ替え、各カードにランキング表示を追加します。
完成イメージ

実装手順
以下の手順で実装します。
- ラベルCocoon設定
表1に示す項目を設定をします。
Cocoon設定 設定 大項目 項目 設定値 カルーセル カルーセル設定 人気記事 オン - ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
カルーセルを人気順に並び替え、先頭に固定表示とした投稿は解除します。add_filter('cocoon_carousel_args', function ($args) { // 人気記事が有効な場合 if (is_carousel_popular_posts_enable()) { // 表示を人気順に設定 $args['orderby'] = 'post__in'; // 先頭固定表示の投稿を無視 $args['ignore_sticky_posts'] = true; } return $args; });
ランキング表示を追加する方法
記事を人気順に並べ替えを拡張して、各カードにランキング表示を追加します。
実装手順
前述のコードに加え、以下のコードをfunctions.phpに追加します。
- ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
各カードにランキング(carousel-no)を追加します。add_filter('cocoon_part__tmp/carousel-entry-card', function ($content) { static $i = 1; return preg_replace('/(<\/article>)/i', '$1<div class="carousel__number">' . $i++ . '</div>', $content); }); - ラベルCSSを追加
以下のコードをstyle.cssに追加します。
.carousel-entry-card-wrap { position: relative; } .carousel__number { background-color: #333; color: #fff; font-size: 12px; line-height: 1.5em; position: absolute; right: 0; text-align: center; top: 0; width: 1.5em; z-index: 1; }
さいごに
今回の方法を使えば、カルーセルを人気順に表示し、各カードにランキングを追加することができます。
この仕組みにより、ユーザーにとって興味深いコンテンツを効果的に提供し、サイトの魅力を高めることができるでしょう。
