技術ブログ
投稿タイプで3つ以上のタクソノミーを指定していて、記事上2つの同じタクソノミーに所属している記事一覧を表示する方法です。
指定したタームの記事情報を取得する方法は見つけられたのですが、タクソノミー毎に指定する方法を見つける事が出来なかったので紹介します。
もっとスマートにする方法もあると思うのですが、汎用性を考えてこの状態で置いておきます。
タクソノミーを二つ指定
「〇〇〇」はタクソノミー名1
「●●●」はタクソノミー名2
term_varを増やす事で、3つ、4つのタクソノミーを指定出来る様になります。
増やす場合は、「$term_var = get_the_terms( $post->ID, ‘〇〇〇’ );」とarrayのセットを増やすだけです。
「posts_per_page」で表示件数を指定
「post_type」は投稿タイプを指定します。「post」の所に投稿タイプスラッグを入れる事も可能
「relation」の「AND」はすべてに該当する、「or」はいずれかに該当する
<?php
$term_var = get_the_terms( $post->ID, '〇〇〇' );
$term_var2 = get_the_terms( $post->ID, '●●●' );
$postQuery = new WP_Query();
$param = array(
'posts_per_page' => '4',
'post_type' => 'post',
'paged' => $paged,
'post__not_in' => array(get_the_ID()),
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => '〇〇〇',
'field' => 'slug',
'terms' => $term_var[0]
),
array(
'taxonomy' => '●●●',
'field' => 'slug',
'terms' => $term_var2[0]
)
)
);
$postQuery->query($param);
?>
<?php if( $postQuery->have_posts() ) :?>
<?php while( $postQuery->have_posts() ):$postQuery->the_post(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
タクソノミーを一つ指定してタームを一つ指定
「〇〇〇」はタクソノミー名
「●●●」はタクソノミー名
「■■■
」はターム名
<?php
$term_var = get_the_terms( $post->ID, '〇〇〇' );
$postQuery = new WP_Query();
$param = array(
'posts_per_page' => '4',
'post_type' => 'post',
'paged' => $paged,
'post__not_in' => array(get_the_ID()),
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => '〇〇〇',
'field' => 'slug',
'terms' => $term_var[0]
),
array(
'taxonomy' => '●●●',
'field' => 'slug',
'terms' => '■■■'
)
)
);
$postQuery->query($param);
?>
<?php if( $postQuery->have_posts() ) :?>
<?php while( $postQuery->have_posts() ):$postQuery->the_post(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
おすすめ記事
WordPressの更新に便利なAdvanced Custom Fieldsのフィールド一覧 35タイプ
大阪のホームページ制作会社TREVOでは、ホームページ制作に関する情報を掲載しています。最短2日で仮サイトを公開するサービスやSEO対策に特化したホームページ制作、オリジナルホームページデザイン、ライティング、リスティング広告、WEBマーケティングなどのサービスをご紹介しています。