【Advanced Custom Fields】記事投稿時に指定したタグとループを連動させる

今回やりたかったことは、
・特定のタグが付いている記事を引っ張ってきたい
・記事を投稿する際に、そのタグを指定したい
・そこに入力したタグを使ってループを回したい
です。
既に存在しているタグを使って、タグが付いている記事をループするのはよくあるケースだと思いますが、
今回は、新規で記事を投稿する際に、そのタグを指定するという内容。
そしてそれらのタグが付いた記事を引っ張ってきます。
とりあえず「Advanced Custom Fields」でタグを入力するためのカスタムフィールドを用意。
そしてテンプレートファイルの出力したい箇所に以下を↓
01 02 03 04 05 06 07 08 09 10 11 12 13 | <?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日