[WordPress] 指定したタグの記事リンクを一覧表示したい
- ある特定のタグが設定された記事のリンクをまとめて表示したい場合があります
- WP_Queryクラスを使用して取得した記事情報をリスト形式で出力します。処理をショートコード化することで、投稿画面から手軽に呼び出せるようにしています
サンプルコード
functions.php
function disp_taglink_list($atts) {
if(is_null($atts[0])) return;
$html = '';
$args = array('tag' => $atts[0]);
$the_query = new WP_Query($args);
if($the_query->have_posts()) {
$html .= '<ul>';
while($the_query->have_posts()) {
$the_query->the_post();
$title = get_the_title();
$url = get_the_permalink();
$html .= '<li><a href="'. $url .'">'. $title .'</a></li>';
}
$html .= '</ul>';
wp_reset_postdata();
}
ob_start();
echo $html;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
add_shortcode('taglink', 'disp_taglink_list');
- WP_Queryクラスのパラメーターとして「tag」にショートコードの引数を設定します
- クエリのループで検索した記事のタイトルとリンクを取得し、リストタグとして出力します。リストタグは「ob_start」でバッファに出力させることで、ショートコードを埋め込んだ箇所にリストタグが展開されるようにします
- 一連の処理が終わったあとは「wp_reset_postdata();」を実行してリセットを行います
ショートコードを呼び出す
[taglink icon-css]
- ショートコードの引数に、タグのスラッグ名を指定します
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。