我正在使用php进行wp查询。
首先,我需要使用此
获取一系列帖子ID$artists_ID_array = get_field("page_artiste");
(我使用高级自定义字段与关系,无论如何它并不重要......我得到了一系列值)
这是数组的样子:
数组([0] => 141 [1] => 59)
然后来了我的args:
$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'
依旧...在我的元查询中,我使用了所有数组结果。
它工作正常,我得到了我想要的帖子。
但是你可以想象我想要做的就是为每个人使用以避免在我的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'
));
}
?>
任何人都可以帮我这个吗? 希望你理解我的要求
答案 0 :(得分:1)
我相信你可以进一步简化这一点,因为meta_query比较允许你使用值“IN”
“IN”(而非类似)允许您搜索给定数组中任何值的值。
所以你的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'
)
)
)
);