带有ID和slug组合的Wordpress query_posts

时间:2014-07-29 11:56:08

标签: wordpress-plugin wordpress

是否可以将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在这里工作,因为它需要数字数组。

由于

1 个答案:

答案 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)

希望这有帮助!