我需要将包含数组的变量放入post__in =>数组($ variable)中,但是使用已发布的代码wp_query只返回一个(第一个帖子ID号)。
我试图对'post__in'=> array(24,23,25)进行硬编码,查询显示了所有三个帖子,但我不知道如何使其动态化(使post__in => array($ variable) )。我怀疑”里面有东西,但找不到。
$selected_ids = '24,23,25'; //needs to be equal to $_POST['selected_ids'];
$args2 = array(
'post_type' => 'specs',
'post__in' => array($selected_ids)
);
$query2 = new WP_Query( $args2 );
if ( $query2->have_posts() ) {
while ( $query2->have_posts() ) {
$query2->the_post();
echo '<li class="col-lg-3">
<div class="col compare-item-field">
<button type="button" class="close" aria-label="Close">
<span aria-hidden="true">×</span>
</button></br>
<p>' . get_the_title( $query2->post->ID ) . '</p>
<p class="text-muted">at ' . get_field( 'myField', $query2->post->ID ) . '</p>
</div>
</li>';
}
// Restore original Post Data
wp_reset_postdata();
}
答案 0 :(得分:0)
当前,'post__in' => array($selected_ids)
使用的数组中包含一项,即“ ID”为“ 24,23,25”。
这是因为$selected_ids = '24,23,25';
是 string 。如果要从输入值中获取'24,23,25'
,则可以使用PHP的explode()
函数,以逗号分隔的方式将字符串转换为数组。
$ids = '24,23,25';
$selected_ids = explode( ',', $ids );
这将返回一个实际的数组:
array(3) {
[0]=> string(2) "24"
[1]=> string(2) "23"
[2]=> string(2) "25"
}