trash-area.com ≫ blog ≫ wordpress ≫ 記事ページに同じカテゴリ内の別の記事をランダムにリスト表示
wordpress の小ネタです。
タイトル通り、記事ページに同じカテゴリ内の別の記事をランダムにリスト表示するサンプルです。
まぁ Simple Tags の関連エントリーのカテゴリ版みたいなものですね。
サンプルは 5件をランダムです。
お手持ちのテーマの single.php あたりをカスタマイズしてみて下さい。
<?php $cat = get_the_category(); $cat = $cat[0]; ?> <?php $bk_wp_query = clone $wp_query; ?> <h3>同一カテゴリ内の別の記事</h3> <?php query_posts( array('cat' => $cat->cat_ID, 'showposts' => 5, 'orderby' => 'rand', 'post__not_in' => array($post->ID)) ); ?> <ul> <?php while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> <?php $wp_query = clone $bk_wp_query; ?> |
php4 の場合は clone がいらないかと思います。
カテゴリが複数にまたがる場合は $cat = $cat[0]; をやめつつ、 query_posts の cat パラメータのとこを category__in とかにすれば ok かと思います。
なんとなくテンプレートタグで実装してみました。
おそらく二重ループになるので $wp_query を退避してあげています。
get_postsを使ったほうが簡単そうなんですけど、ソースが汚くなるんですかねぇ。
テンプレートタグがいまいちよくわかりません。
テンプレートタグ/get posts – WordPress Codex 日本語版
[…] 記事ページに同じカテゴリ内の別の記事をランダムにリスト表示 | trash-area…var url="http://trash-area.com/archives/292"; […]
[…] 昔のポストの「記事ページに同じカテゴリ内の別の記事をランダムにリスト表示」が うまく動いてないよ。ってことなので、今うちのテンプレートをそのまま貼ってみることにしました。 […]