【问题标题】:looping inside an array using for each使用 for each 在数组内循环
【发布时间】:2016-09-29 15:52:18
【问题描述】:

我正在使用 php 进行 wp 查询。

首先我需要获取一个帖子 ID 数组,使用这个

$artists_ID_array = get_field("page_artiste");

(我正在使用具有关系的高级自定义字段,无论如何都没关系...我得到一个值数组)

这是数组的样子:

数组([0] => 141 [1] => 59)

然后是我的参数:

$videos = get_posts(
    array(
        'post_type' => 'videos',
        'post__not_in' => array( $post->ID ),

            'meta_query' => array(

            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[0],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[1],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[2],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[3],
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array[4],
                'compare' => 'LIKE'

等等...在我的元查询中,我使用了所有的数组结果。

效果很好,我得到了我想要的帖子。

但正如您可以想象的那样,我试图做的是使用 for each 以避免在我的 args "$artists_ID_array[4]" 中包含所有这些数组,并在我的数组中循环。

所以这是我尝试过的方法,但它不起作用......我不明白为什么......

<?php 

$artists_ID_array = get_field("page_artiste");

$videos = array(
        'post_type' => 'videos',
        'post__not_in' => array( $post->ID ),
            'meta_query' => array(

    )
);

foreach($artists_ID_array as $value) {
    array_push($videos['meta_query'], array(
                'key' => 'page_artiste',
                'value' => $value,
                'compare' => 'LIKE'
    ));

}

?>

谁能帮我解决这个问题? 希望你能理解我的要求

【问题讨论】:

    标签: php arrays wordpress foreach


    【解决方案1】:

    我相信您可以进一步简化这一点,因为 meta_query 比较允许您使用值“IN”

    “IN”(而不是 like)允许您搜索给定数组中任何值的值。

    所以你的 get_posts 可能看起来像这样:

    $videos = get_posts(
      array(
        'post_type' => 'videos',
        'post__not_in' => array( $post->ID ),
    
         'meta_query' => array(
    
            array(
                'key' => 'page_artiste',
                'value' => $artists_ID_array,
                'compare' => 'IN'
            )
         )
       )
     );
    

    【讨论】:

      猜你喜欢
      • 2015-11-12
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      相关资源
      最近更新 更多