我正忙于为其中一个客户构建一个小主题选项页面,并需要一些问题的帮助。
目前我可以选择手动输入wordpress页面的IDS以使用query_posts
基于主题选项创建一个名为$euro_box_1_vehicles;
我的选项在输入中填入32,39,43,54
,当我用echo打印此语句时,我得到相同的结果。
当我将array(32,39,43,45)
替换为array($euro_box_1_vehicles)
时,它只返回一个结果。
<?php
$vehicle1 = array(
'post__in' => array(32,39,43,45),
'post_type' => 'page',
);
query_posts( $vehicle1 );
while (have_posts()) : the_post();
?>
答案 0 :(得分:2)
当我回显var_dump = string(11)“32,39,43,45”
时
在这种情况下,您需要explode $vehicle1
,因为post__in
需要一个数组;
query_posts(array(
'post_type' => 'page',
'post__in' => @explode(',', $vehicle1)
));
答案 1 :(得分:1)
<强>更新强>
当我只使用数组($ euro_box_1_vehicles)替换数组(32,39,43,45)时,它只返回一个结果。
你不应该用array(32,39,43,45)
而不是 $euro_box_1_vehicles
替换array($euro_box_1_vehicles
吗?后者似乎会产生一个带有一个参数的嵌套数组,即array(array(32,39,43,45))。这不是你想要的。
旧答案......
如果我读了你,那么query_posts()需要一个ID列表? (32,39,43,45)
但是当你传递它$ vehicle1时,你没有给它一个ID列表,而是一个二维数组。
<?php
$vehicle1 = array(
'post__in' => array(32,39,43,45),
'post_type' => 'page',
);
query_posts( $vehicle1['post_in'] ); //use sub-array that contains list
while (have_posts()) : the_post();
?>