我想检查一个变量是否包含帖子ID列表,然后我只想查询那些ID的帖子,但如果该变量为空,那么我想显示所有帖子。
问题:如果我将ID提供给post__in
, 然后它会获取带有这些ID的帖子,但是如果它是空的,那么它应该返回all posts 但它没有返回任何帖子。
例如,以下代码将获取ID为1、2、3的帖子。但是,如果$ids
为空。在这种情况下,它不应该返回所有帖子吗?如果$ids
是空的,即。$ids = "";
?
$ids = \'1,2,3\';
$arr = explode("," ,$ids);
$args = array(
\'posts_per_page\' => $number,
\'post__in\' => $arr,
);
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
WordPress似乎没有忽略空post__in
参数。所以你必须自己这样做。。。
$ids = \'1,2,3\';
if ( $ids ) {
$arr = explode("," ,$ids);
$args = array(
\'posts_per_page\' => $number,
\'post__in\' => $arr
);
} else {
$args = array(
\'posts_per_page\' => $number
);
}
SO网友:helgatheviking
Krysiek答案的另一种选择。他们都应该完成相同的事情,只需添加post__in
参数,如果$ID存在。
$ids = \'1,2,3\';
$arr = explode("," ,$ids);
$args = array(
\'posts_per_page\' => $number,
);
if( $ids )
$args[\'post__in\'] = $arr;