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

Php 如何修改WordPress中的搜索小部件以仅搜索当前类别?,php,wordpress,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','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;
}

如果您能帮助您将当前类别设置为动态类别,我们将不胜感激。

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

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;

}

那没用。如果你在这里看到:类别就是烹饪。如果您在侧边栏上搜索单词Sick。它应该不会有结果。但它显示的结果属于另一类,称为亚当角。