我正在尝试将我的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
答案 0 :(得分:1)
将其放在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 强>