2017-02-23 36 views
0

我正在修改搜索小部件,以便在搜索结果时只返回当前类别。我能得到的搜索,如果我用这样的东西静态工作:如何修改WordPress中的搜索部件以仅搜索当前类别?

function searchcategory($query) { 
    if ($query->is_search) { 
     $query->set('category_name','adams-corner'); 
    } 
    return $query; 
} 
add_filter('pre_get_posts','searchcategory'); 

但是我使用一个模板,每只猫所以它需要知道它在什么类别,我希望用一个全局变量了设置在模板中,但它似乎不会工作:

function searchcategory($query) { 
    if ($query->is_search) { 
     $query->set('category_name',$post->post_name); 
    } 

    return $query; 
} 

任何帮助获取当前类别是动态的将不胜感激。

回答

0

您可以使用查询变量来获取当前类别,然后在查询中使用它。

function searchcategory($query) { 
if ($query->is_search) { 
    $category = get_category(get_query_var('cat')); 
    $cat_id = $category->cat_ID; 
    $query->set('category',$cat_id); 
} 

return $query; 

}

+0

这没有奏效。如果你看到这里: http://xeroproject.com/DNG/category/whats-cooking/ 该类别是什么的烹饪。如果您在边栏上搜索单词Sick。它应该没有结果。但是,它显示了另一个类别Adam's Corner的结果。 – jamie