2017-09-14 13 views
0

リピータフィールド内で特定のチェックボックスが選択されているすべての投稿を照会しようとしています。質問投稿カスタムフィールド:ACFリピータ内のチェックリスト

私はこのtutorialを発見し、私がやりたいことは、私の最初の試みは、ただ1チェックされた項目のすべての投稿および印刷を照会した、話題3と4のミックスですが、私は私の自己によって達成できませんでした:

<?php 

    $args = array(
     'post_type' => 'modalidade', 
     'posts_per_page' => -1, 
    ); 

    $loop = new WP_Query($args); 

?> 


<?php 

// check if the repeater field has rows of data 
if(have_rows('horarios')): 

    // loop through the rows of data 
    while (have_rows('horarios')) : the_row(); 

     $dia_da_semana = get_sub_field_object('dia_da_semana'); 
     $horario = get_sub_field_object('horario'); 

     if (in_array(1, $dia_da_semana['value'])) { 
      echo 'segunda'; 
      print_r($horario['value']); 
      echo '<br>'; 
     } 

    endwhile; 

endif; 

?> 

しかし、それは良い解決策だとは思わない。たぶん私がしようとしていることを達成するためのよりよい方法があります。

+0

関連するコードを[最小限で完全で検証可能な例](https://stackoverflow.com/help/mcve)に含めて質問を更新して、これまでに試したこととそれが機能しない理由について詳しく説明してください。 – FluffyKitten

+0

完了!警告のおかげで! – carmolim

+0

WPクエリはどこですか? – Aibrean

答えて

0

チュートリアルを使用してhereを見つけ、自分のコードとデータ構造を少しtwekedして作成しました。最終的なコードは次のようになります。私にとって非常に重要だった

// filter 
function my_posts_where($where) { 

$where = str_replace("meta_key = 'time_%", "meta_key LIKE 'time_%", $where); 
    return $where; 
} 

add_filter('posts_where', 'my_posts_where'); 

// args 
$args = array(
    'posts_per_page' => -1, 
    'post_type'  => 'class', 
    'meta_query' => array(
     array(
      'key'  => 'time_%_day_of_week', 
      'value'  => 'monday', 
      'compare' => 'LIKE' 
     ), 
    ) 
); 

1つの変更は、すべての記事を取得するために'posts_per_page' => -1,'numberposts' => -1,を交換しました。プロパティnumberpostsは機能しませんでした。

関連する問題