
たとえば「ブログ」というカスタム投稿タイプで、以下のようなカテゴリ(ターム)構成にするとします。
ブログ
営業部
きょうのできごと
勉強になる話
技術部
技術について
エンジニアの雑学
このとき、「きょうのできごと」のある記事のページで、親カテゴリ「営業部」の記事一覧を表示したい、しかも当記事は除いて、というケースがあります。
いわゆる関連記事の表示ですね。
その方法を今回はご紹介。
テーマのsingle-blog.php に以下を記述します。
$post_type = 'blog'; //「ブログ」のカスタム投稿タイプ名
$taxonomy = 'blog_cat'; //「ブログ」のカスタム分類(タクソノミー)名
$terms = get_the_terms($post->ID,$taxonomy);
$this_term = $terms[0];
$ancestors = get_ancestors($this_term ->term_id, $taxonomy );
if($ancestors){
$ancestor_id = end($ancestors); //先祖タームの最終要素IDをセット
}else{
$ancestor_id = $this_term->term_id; //自分自身のタームIDをセット
}
//当記事を除いて記事一覧を取得
$posts = get_posts( array(
'post_type' => $post_type,
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'id',
'terms' => $ancestor_id
)
),
'posts_per_page' => 4,
'exclude' => get_the_ID()
));
foreach ($posts as $post){
//表示処理
}
カテゴリの階層が増えれば、一番先祖のタームの記事一覧取得になります。
これってなにげにニーズあるんですよ。ご参考にしてください。
現在あなたが利用されているWordPressテーマを活かしたまま、このページの事例を解決できるWordPressテーマを、子テーマとして購入できます。
この子テーマを有効化するだけで、現在お使いのデザインテーマにこの事例解決の機能が自動付与されます。
デザインが入っていないため、一般より格段に低い価格(事例の難易度により200円~1.3万円)です。
※ テーマは買い切りです
※ 自由に改変してお使いいただいて構いません
※ すでに子テーマでサイト運用されている方は、当該子テーマをマージしてください
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!