如何使WP_QUERY‘POST__IN’接受数组?

时间:2012-02-06 作者:m-torin

我有a function 返回特定用户可以访问的帖子ID的逗号分隔列表。我想在WP\\U查询循环中使用此列表。

自定义功能:

$array = user_albums();
foreach( $array as $post ) {
    if( !in_array( $post->ID, $array ) )
        $ids[] = $post->ID;
}
$access_ids = implode( \', \', $ids );
情况如下:

在我的测试站点上,id列表是158, 162, 145, 269.\'post__in\'=> array( $access_ids ), \'post__in\'=> $access_ids , \'post__in\'=> array( 158, 162, 145, 269 ),What could I be doing wrong?<我感谢你的帮助。

3 个回复
最合适的回答,由SO网友:Rob Vermeer 整理而成

$access_ids 是字符串。post__in 接受数组。

因此,您可以使用\'post__in\'=> $ids 跳过$access_ids = implode( \', \', $ids ); 全部加在一起。

SO网友:Rarst

那个implode() 可能是破坏事物的原因:

$access_ids = \'158, 162, 145, 269\';

$array = array($access_ids); //wrong
var_dump( $array ); 
// array
//  0 => string \'158, 162, 145, 269\' (length=18)

$array = array_map( \'trim\', explode( \',\', $access_ids ) ); // right
var_dump( $array ); 
//array
//  0 => string \'158\' (length=3)
//  1 => string \'162\' (length=3)
//  2 => string \'145\' (length=3)
//  3 => string \'269\' (length=3)

SO网友:Stephen Harris

刚刚设置好\'post__in\'=>$ids, 声明数组($access\\u id)不会创建所需的数组。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post