wp_query仅从变量数组首先返回

时间:2018-07-12 21:29:59

标签: arrays wordpress variables

我需要将包含数组的变量放入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">&times;</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();
}

1 个答案:

答案 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"
}