Wordpressでサイトを作っていると、個別投稿ページに同じカテゴリーに属する他の記事を一覧表示したくなることがあります。えっ、私だけですか?それはともかく、@web_shufuがそんなときに愛用しているコードがあるのでご紹介します。
get_posts関数とは
今回、個別投稿ページに同じカテゴリーの記事一覧を表示するにあたって、get_posts関数を使います。
get_posts関数を一言で言うと「条件に一致する投稿を取得する」関数です。
詳細はこちらにてご確認ください。
[img-link url=”http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_posts#.E8.AA.AC.E6.98.8E” title=”テンプレートタグ/get posts – WordPress Codex 日本語版”]
コード
<ul class="related-post">
<?php
//投稿が属するカテゴリのIDを$category_idとして取得
//(複数カテゴリーに属している場合は1つだけIDを取得)
$cates = get_the_category();
$cat = $cates[0];
$category_id=$cat->cat_ID;
//$argsでリスト表示する記事の条件設定
$args = array(
//属するカテゴリのIDが$category_idである全ての記事を選び
'category__and' =>array($category_id),
//今表示している投稿を除外
'post__not_in' => array($post->ID),
//上記条件に該当する記事を全て表示
'posts_per_page' =>-1
);
$myposts = get_posts( $args );
foreach( $myposts as $post ) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
実装例
先日同じドメイン内に引っ越してきたアフィリエイトサイトでも上記コードは活躍しています。
[img-link url=”https://webshufu.com/packing-laundry/” title=”洗濯機の水抜きと取り外し・設置・引越し準備-ウェブシュフ”]
記事下にある「関連記事」のところで、同じカテゴリーに属する他の記事を一覧表示するのに使っています。
応用範囲はとても広い
上記のコードのようなget_posts関数を利用したリストはとても応用範囲が広いです。$argsをアレンジすると色んなリストが作れます。
下記ページに掲載されているパラメーターを使うと$argsには実に様々な設定が出来ます。
[img-link url=”http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#Parameters” title=”関数リファレンス/WP Query – WordPress Codex 日本語版”]
get_posts関数でカスタマイズの幅を広げてみませんか。