是否可以将query_posts与id' s和slugs结合使用?
我有一系列来自用户输入的id和slugs,想知道我是否可以在同一个帖子查询中使用这两个,或者我是否必须将slu to转换为各自的帖子ID' s之前然后使用posts__in?
我在阵列中有以下混合的slu and和ID ......
$values = array('this-is-a-test-slug', '2345', '4510', 'another-slug-here', '8934');
我如何在query_posts中使用它?我可以吗?
query_posts(array('post_type' => 'post', 'post__in' => $values, 'orderby' => 'rand'));
我知道post__in可以使用数字ID,但我不认为slug在这里工作,因为它需要数字数组。
由于
答案 0 :(得分:0)
如果您正在做这样的事情,我不明白为什么将它们全部转换为ID不会有问题? There's a thread that sort of helps,我已经编写了一些代码(在该链接的帮助下)可能会帮助您入门
function allToID($array){
$id = array();
foreach($array as $convert):
if(is_numeric($convert)):
continue; // skip if it's already an ID
else:
$the_slug = $convert;
$args=array(
'name' => $the_slug,
'numberposts' => 1
);
// Ask wordpress to get this post
$my_posts = get_posts($args);
if( $my_posts ) :
// push onto our new array of only IDs
array_push($id, $my_posts[0]->ID);
else continue;
endif;
endif;
endforeach;
}
理想情况下,您可以投放post__in => alltoID($values)
希望这有帮助!