Repeater Fieldsの値で投稿を並べて更新情報を作る方法/Advanced Custom Fields/WordPress

Repeater Fieldsの値で投稿を並べて更新情報を作る方法/Advanced Custom Fields/WordPress
アバター
ME

更新した記事のドコが更新されたのかを伝えたい!

アバター
ME

あと、更新情報をトップページで表示をしたい!

こんな思いが実現したので覚書を記します。

イメージは↓↓のようなカンジ。
更新日付順に表示をしたかった。

理想

    ▼トップページに表示したい更新情報

  • 2020/01/21 「投稿タイトルDDDDD」更新タイトル
  • 2020/01/20 「投稿タイトルBBBBB」更新タイトル
  • 2020/01/17 「投稿タイトルCCCCC」更新タイトル
  • 2020/01/16 「投稿タイトルBBBBB」更新タイトル
  • 2020/01/16 「投稿タイトルAAAAA」更新タイトル

上記を実現させるために、Advanced Custom FieldsRepeater Fields(繰り返しフィールド)を使って以下のフィールドを作った。
これにより複数回の更新をした時でもドコを更新したのか細かく伝えられる。

Repeater Fields(繰り返しフィールドの中身

フィールド

update

サブフィールド

更新日時 update-time
更新タイトル update-title

Repeater Fieldsの値で投稿を並べる/Advanced Custom Fields/WordPress

ソースコード

    'post', 'category_name' => 'machine', 'meta_key' => 'update_$_update-time', 'posts_per_page' => 10, ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); if( have_rows('update') ): while ( have_rows('update') ) : the_row(); if ( get_sub_field('update-time') ) { $post_data[] = array( 'title' => get_the_title(), 'date' => get_sub_field('update-time'), 'updatetitle' => get_sub_field('update-title'), 'link' => get_permalink() ); } endwhile; endif; } } function subval_sort( $a, $b ) { if ( $a['date'] == $b['date'] ) return 0; return $a['date'] > $b['date'] ? -1 : 1; //「>」でソートを変更可能 } usort( $post_data, 'subval_sort' ); foreach ( $post_data as $post ) { echo '
  • '; echo ''; echo $post['date'] . '  ' ; echo '「'.$post['title'] . '」' ; echo $post['updatetitle']; echo '

  • '; } ?>

制作対応できるのは

202311月〜

ご相談はいつでもOK!

東京ブランド「ロゴ」