目次
【演習課題2】制作実績の詳細ページで表示している投稿と同じ制作ジャンルの記事を取得して関連記事として表示させてみる
ヒントを参考にしながら、自分なりに実装をしてみました!
<?php
$genre_terms = get_the_terms(get_the_ID(), 'genre');
$genre_term = !empty($genre_terms) ? $genre_terms[0] : null;
?>
<?php
$related_query = new WP_Query(
array(
'post_type' => 'work',
'posts_per_page' => 3,
'post__not_in' => array($post->ID),
'orderby' => 'rand',
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => $genre_term->slug,
),
),
)
);
$genre_termを定義する
記事のジャンルを取得するコードを追加します!
$genre_terms = get_the_terms(get_the_ID(), 'genre');
これを記述することで、「ジャンル」タクソノミーのすべてのタームを取得できるようにします。
$genre_term = !empty($genre_terms) ? $genre_terms[0] : null;
$genre_terms
の中に、「ジャンル」というものがあるかどうかわかりません。
!empty($genre_terms)
は、「ジャンル」が入っているか確認するために記述します。
「ジャンル」が入っていたら、$genre_term
に代入しますと言う意味になります。
$genre_terms[0] : null
逆に、$genre_terms
の中に何も入っていなかったら、$genre_term
に何も代入しませんと言うことを記述しています!
もらったヒントを参考にしつつ公式リファレンスを参考にする
ここまで学習されてきた方だとなんとなく書いてあることがわかってきましたよね☺️
<?php
$related_query = new WP_Query(
array(
'post_type' => 'work',
'posts_per_page' => 3,
'post__not_in' => array($post->ID),
'orderby' => 'rand',
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => $genre_term->slug,
),
),
)
);
$related_query
は、一般的な変数名で開発者が自由に名前を決めることができるため、決まっている訳ではありません。
記述できたら、関連記事が表示されていると思います!!

お疲れ様でした✨
コメント
コメント一覧 (2件)
デイトラのDAY13-14 演習課題: single.phpに関連記事を表示させる の課題を調べていてこのブログに辿り着きました。私も二児の母で仕事に家事に子育てに日々時間がない中なんとか時間を捻出してここまで勉強してきました。こんなにも丁寧にアウトプットしていて素晴らしいと思います。ついコメントしてしまいました。これからも応援しています!一緒に頑張りましょう^^
もいさん!!
嬉しいコメントありがとうございます♀️
自己満で始めたブログですが、こんな嬉しい日が来るなんて思いもしなかったです
お子さん2人育てながら、仕事家事育児学習、本当頭が上がりません♀️
いっそう、私も頑張らないとと思いました!!
この度は、コメントありがとうございます☺️⭐️