サポート » プラグイン » ACF Repeater Fieldでソートしたい

  • 解決済 toliy

    (@toliy)


    カスタムフィールドの値でイベント記事のソートを行っています。
    投稿した日付関係なく、開始日が近い順で表示、最終日が過ぎたら一覧から消えるという仕様です。
    これをACFの有料追加機能「Repeater Field」を使い、イベントが複数日あった場合でも任意で入力欄(デイトピッカー)増減できる仕様に変更を考えています。
    この時、Repeater Fieldの子要素の配列の最初を開始日、最後を最終日としたいのですが、よい方法がありますでしょうか?
    ご教授いただければ幸いです。

    現状は「初日」「開催日(複数)」「最終日」の3つのカスタムフィールドとなっていますが、これをひとつにまとめたいというのが希望です。

    
    <?php
    $args = array(
         'post_type' => 'event',
         'orderby' => 'meta_value',
         'meta_key' => 'start-day', //初日
         'order'=> 'ASC',
         'numberposts' => 10,
         'meta_query' => array(
            array(
                'key' => 'XXXX-space',
                'value' => 'XXX'
            ),
            array(
                'key' => 'end-day', //最終日
                'value' => date('Ymd'),
                'compare' => '>=',
                'type' => 'NUMERIC'
            )
        )
    );
    
    $posts = get_posts($args);
    ?>
    
    <?php
    //以下ループ
    if ($posts) : foreach ($posts as $post) : setup_postdata($post);
    $date_repeat = get_field('open-date_repeat');
    
    ?>
    <?php if($date_repeat): ?>
    <?php 
    while(the_repeater_field('open-date_repeat')): //Repeater Fieldをループ処理
    $date_child = date_create(get_sub_field('open-date_child'));
    $ws = (int) $date_child->format('w');
    ?>
    ・<?php echo date_format($date_child, 'm'); ?>/<?php echo date_format($date_child, 'd'); ?>(<?php echo $week[$ws]; ?>)
    <?php endwhile;?>
    <?php endif; ?>
    
    • このトピックはが1週、 2日前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。