カテゴリー
WordPress運営日誌»WP関連古記事»WordPress関数»

WordPressの個別投稿ページに同じカテゴリーの記事一覧を表示

WordPress
Wordpressでサイトを作っていると、個別投稿ページに同じカテゴリーに属する他の記事を一覧表示したくなることがあります。えっ、私だけですか?それはともかく、@web_shufuがそんなときに愛用しているコードがあるのでご紹介します。

get_posts関数とは

今回、個別投稿ページに同じカテゴリーの記事一覧を表示するにあたって、get_posts関数を使います。

get_posts関数を一言で言うと「条件に一致する投稿を取得する」関数です。

詳細はこちらにてご確認ください。

コード

<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>

実装例

先日同じドメイン内に引っ越してきたアフィリエイトサイトでも上記コードは活躍しています。

記事下にある「関連記事」のところで、同じカテゴリーに属する他の記事を一覧表示するのに使っています。

応用範囲はとても広い

上記のコードのようなget_posts関数を利用したリストはとても応用範囲が広いです。$argsをアレンジすると色んなリストが作れます。

下記ページに掲載されているパラメーターを使うと$argsには実に様々な設定が出来ます。

get_posts関数でカスタマイズの幅を広げてみませんか。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です