タグ別の記事一覧をWordPressで作ります。
タグの名前を見出しに表示して、各記事のタイトルでリンク先に飛びます。
カテゴリだけでは網羅できない記事の一覧をタグごとに表示することで、目的の記事を探しやすくします。
目次
タグごとの記事一覧 WordPress表示例
タグ別記事一覧のコード
<?php
$tags = '111,222,333'; //タグIDを指定
for ($i=0; $i<count($tags); $i++) :
?>
<h2><?php $tag_term = get_term( $tags[$i], 'post_tag' );echo $tag_term->name; ?></h2>
<ul>
<?php
query_posts('tag_id='.$tags[$i]);
if (have_posts()) : while (have_posts()) : the_post();
?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php else: ?>
<li><?php $tag_term = get_term( $tags[$i], 'post_tag' );echo $tag_term->name; ?></li>
<?php endif; ?>
<?php wp_reset_query(); ?>
<?php endfor; ?>
※コピーされたコード内の最上段と最下段の2行はコメントのため削除してください。
タグ別記事一覧のコード(ID指定を分割)
私はタグIDの指定を別の場所でしたかったので、グローバル変数を使って分割しました。
functions.php に変数を追加
global $tag_id_list;
タグIDの指定
<?php
global $tag_id_list;
$tag_id_list = '111,222,333';
?>
一覧表示
<?php
global $tag_id_list;
$tags = explode(',', $tag_id_list);
for ($i=0; $i<count($tags); $i++) :
?>
<h2><?php $tag_term = get_term( $tags[$i], 'post_tag' );echo $tag_term->name; ?></h2>
<ul>
<?php
query_posts('tag_id='.$tags[$i]);
if (have_posts()) : while (have_posts()) : the_post();
?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php else: ?>
<li><?php $tag_term = get_term( $tags[$i], 'post_tag' );echo $tag_term->name; ?></li>
<?php endif; ?>
<?php wp_reset_query(); ?>
<?php endfor; ?>
※コピーされたコード内の最上段と最下段の2行はコメントのため削除してください。
※ テーマの修正は、必ずバックアップとテスト環境でのテストを実施後にしてください。
実装例
私はPHPコードを「Advanced Ads」プラグインで実装しています。(本来は広告を装入するプラグインなので、推奨される利用法ではないかもしれません)
Advanced AdsがAdSenseや広告設置で一番お勧めな理由と超簡単な使い方
Special Thanks
こちらの記事を参考にさせていただきました。
ありがとうございました。