acf リピーター内の値のあるフィールド数

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。
プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
2020.04.23公開


acf リピーターにいくつ繰り返しがあるかは count(get_field(‘fieldname’)); でループの前でも取得できるが、小見出しとテキストがセットになったリピーターで小見出しの入力が2つ以上あったら目次(アンカーリンク)をつけるという仕様の場合、どうしたものか?
一度ループを作って数えるというのはなかなかにややこしい感じがするので、1つ前の投稿のやり方で、別のフィールドにカウントを保存することにした。

function my_acf_update_value( $value, $post_id, $field ) {
    if(get_post_type( $post_id ) == 'xxx' && have_rows('xxx')) { $count=0; while (have_rows('xxx')) : the_row();
        if (get_sub_field('title')) { $count++; }
    endwhile; } 
    $value = $count;
    return $value;
}
add_filter('acf/update_value/name=count', 'my_acf_update_value', 10, 3);

これで、目次は get_field(‘count’) > 1 だったら表示、本文の表示部分のカウントは0から初めて、while の直後に小見出しの入力があったら1増やす、とした。

その他のAdvanced Custom Fields に関する記事一覧


情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。
プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
2020.04.23公開