はじめに
カルーセルに、カスタム投稿タイプに属する特定のタームの投稿を表示します。
ここでは、以下のカスタム投稿タイプを使用します。
この記事では、この方法について説明します。
実装手順
以下の手順で実装します。
例として、カスタム投稿タイプnewsカスタムタクソノミー(news_categoryや news_tag)ごとに、取得したいタームIDを設定します。
- ラベルCocoon設定
表1に示す項目を設定をします。
Cocoon設定 設定 大項目 項目 設定値 カルーセル カルーセル設定 カルーセルの表示 人気記事 オン - ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
例として表示するカスタムタクソノミーをID=123、456に設定します。add_filter('cocoon_carousel_args', function ($args) { // 取得する投稿タイプを設定 $post_type = 'news'; // タクソノミーごとに指定するタームIDの設定 $taxonomy_terms = [ 'news_genre' => [123, 456], ]; // 最大表示数を継承 $count = $args['posts_per_page']; // タクソノミークエリを作成 $tax_query = []; foreach ($taxonomy_terms as $taxonomy => $terms) { $tax_query[] = [ 'taxonomy' => $taxonomy, // 各タクソノミーを指定 'field' => 'term_id', // タームIDで指定 'terms' => $terms, // 設定したタームIDを適用 ]; } // 修正した引数を適用 $args = [ 'post_type' => $post_type, // カスタム投稿タイプを設定 'posts_per_page' => $count, // 投稿数を設定(元の値があれば継承) 'tax_query' => [ 'relation' => 'OR', // いずれかの条件を満たす投稿を取得 ...$tax_query ], 'orderby' => 'date', // 投稿を日付順に並べる 'order' => 'DESC', // 新しい投稿を先に表示 ]; return $args; });
さいごに
紹介した方法を使えば、カルーセルにカスタム投稿タイプの特定のタームに属する投稿を簡単に表示できるようになります。
これにより、ユーザーは興味のある情報にアクセスしやすくなり、サイトの魅力を高めることができるでしょう。
