【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」としてますので、投稿時に入力がない場合はもちろん非表示です。

上記の場合は、見出しと投稿日時と本文が出力されます。

この記事がどなたかのお役に立てれば幸いです。

« »