2012-09-22 61 views
0

我想限制我的WordPress搜索到一个单一的自定义文章类型。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

将此放在您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

+0

嗯...这仍然返回所有职位类型为我。当我输出搜索查询时,post_type参数仍然显示所有帖子类型的数组。 – HWD

+0

HWD,当您注册自定义帖子类型时,您是否将query_var设置为true? – Ozerich

+0

@Ozerich不,我没有注册query_var,但添加它没有帮助... – HWD

相关问题