2

我试图将我的 WordPress 搜索限制为单一的自定义帖子类型。

似乎我可以更改搜索查询的大多数参数,除了帖子类型变量。

$query_args = explode("&", $query_string);
$search_query = array();

foreach($query_args as $key => $string) {
    $query_split = explode("=", $string);
    $search_query[$query_split[0]] = urldecode($query_split[1]);
}

$search_query['post_type'] = 'thread';

$search = new WP_Query($search_query);

此查询仍将返回所有帖子类型。但是如果我设置一个不同的参数,比如“posts_per_page”,它就可以正常工作。

这是怎么回事?如何将我的搜索查询限制为自定义帖子类型?

谢谢你的帮助!

编辑:顺便说一句,我正在使用 WP 3.4.2

4

1 回答 1

4

把它放在你的functions.php文件中。:)

<?php
add_filter('pre_get_posts', 'filter_search_cpt_threads');
/** filter search for threads CPT */
function filter_search_cpt_threads($query)
{
    if( $query->is_search ) $query->set('post_type', array('thread'));

    return $query;
}
?>

最好的!
R

于 2012-09-22T08:26:45.940 回答