記事ページではカテゴリに属する新着順に変えるWordPressのカスタマイズ方法
PR
記事ページでは新着記事を、属するカテゴリにするほうが
カテゴリに興味を持って見てもらっている人にとって、他の記事にも興味を持ってもらいやすいかな?と思います
カテゴリが複雑に沢山あると、どうしてもサイト全体に統一感が無くなってしまいますが、属するカテゴリごとに表示する内容を変えることで、カテゴリという括りでの統一感も出せるかと思います
single.php(記事ページ)で新着記事をカテゴリに属すもののみ表示する方法
コード single.phpに直接記入する場合
<?php $cat = get_the_category(); $catids = ""; foreach( $cat as $catid) { $catids .= $catid->cat_ID.","; } $relposts = get_posts('category='.$catids.'&numberposts=5&orderby=desc');?> <?php foreach($relposts as $post) : ?> <a href="<?php the_permalink(); ?>"><?php the_title("");?></a> <?php endforeach;wp_reset_postdata(); ?>
コード sidebar.php等で表示する場合
<?php if(is_single()): ?> //シングルページの場合にこちらを表示 <?php $cat = get_the_category(); $catids = ""; foreach( $cat as $catid) { $catids .= $catid->cat_ID.","; } $relposts = get_posts('category='.$catids.'&numberposts=5&orderby=desc');?> <?php foreach($relposts as $post) : ?> <a href="<?php the_permalink(); ?>"><?php the_title("");?></a> <?php endforeach;wp_reset_postdata(); ?> <?php else: ?> //シングルページ以外の場合にこちらを表示 <?php query_posts('showposts=5&orderby=desc');?> <?php if(have_posts()):while(have_posts()):the_post();?> <a href="<?php the_permalink(); ?>"><?php the_title("");?></a> <?php endwhile;endif;?> <?php endif;wp_reset_postdata(); ?>
こちらのコードではシングルページかどうかを判断して、違う場合は普通の新着一覧を表示しています
トップページやタグ一覧、カテゴリ一覧では一番最初の記事のカテゴリを拾ってしまうので、通常の新着にしました
カテゴリは複数のカテゴリに属していても、その新着順に表示できます
WordPressのプラグインに感謝さんの記事に載っていたコードを使いました
参考にした記事
http://milkveil.com/archives/1603
PR
COMMENT