【Advanced Custom Fields】記事投稿時に指定したタグとループを連動させる
今回やりたかったことは、
・特定のタグが付いている記事を引っ張ってきたい
・記事を投稿する際に、そのタグを指定したい
・そこに入力したタグを使ってループを回したい
です。
既に存在しているタグを使って、タグが付いている記事をループするのはよくあるケースだと思いますが、
今回は、新規で記事を投稿する際に、そのタグを指定するという内容。
そしてそれらのタグが付いた記事を引っ張ってきます。
とりあえず「Advanced Custom Fields」でタグを入力するためのカスタムフィールドを用意。
そしてテンプレートファイルの出力したい箇所に以下を↓
<?php if(get_field( "フィールド名" )): ?> <?php $args = get_field('フィールド名'); ?> <?php $tag_posts = $wpdb->get_results("select p.ID, p.post_title from wp_posts as p left join wp_term_relationships as tr on p.ID = tr.object_id left join wp_term_taxonomy as tt on tr.term_taxonomy_id = tt.term_taxonomy_id left join wp_terms as t on t.term_id = tt.term_id where t.name = '$args' order by post_date asc"); ?> <?php foreach($tag_posts as $tag_post){ echo '<h5><a href="'.get_permalink($tag_post->ID).'">' . $tag_post->post_title . '</a><span>'.mysql2date('Y.n.j', get_post($tag_post->ID)->post_date). '</span></h5>'; echo '<div>' .get_post($tag_post->ID)->post_content. '</div>'; } ?> <?php endif; ?>
※「フィールド名」のところをご自身の環境に併せて変更してください。
一応「if」としてますので、投稿時に入力がない場合はもちろん非表示です。
上記の場合は、見出しと投稿日時と本文が出力されます。
この記事がどなたかのお役に立てれば幸いです。
タグ: WordPress | 2017年1月20日