2017-09-14 101 views
0

我試圖查詢在中繼器字段中選中特定複選框的所有帖子。查詢帖子自定義字段:ACF中繼器內的檢查列表

我發現這個tutorial什麼,我想要做的是話題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 Query在哪裏? – Aibrean

回答

0

我使用的教程發現here,並將我的代碼和我的數據結構稍微修改一下並製作完成。最終的代碼如下所示:

這是對我很重要
// 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' 
     ), 
    ) 
); 

一個變化是更換'numberposts' => -1,'posts_per_page' => -1,讓所有的帖子。酒店numberposts無法使用。

相關問題