如何在WordPress中修改搜索小部件以仅搜索当前类别?

时间:2017-02-23 21:11:50

标签: php 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;
}

任何有关让当前类别变为动态的帮助都将非常感激。

1 个答案:

答案 0 :(得分: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;

}