合并定制帖子类型的两个搜索功能

时间:2019-09-19 作者:Stickers

除了站点搜索之外。我有一个特定帖子类型的自定义搜索,其排序与全局搜索不同。下面是两个有效的函数。我想知道这两者是否可以合并为一个,或者如果可能的话可以简化?

function _s_staff_search($template) {
    global $wp_query;
    if ($wp_query->is_search && \'staff\' === get_query_var(\'post_type\')) {
        $template = get_template_part(\'template-parts/staff-search\');
    }
    return $template;
}
add_filter(\'template_include\', \'_s_staff_search\');

function _s_staff_query($query) {
    if ($query->is_search() && \'staff\' === get_query_var(\'post_type\')) {
        $query->query_vars[\'orderby\'] = \'name\';
        $query->query_vars[\'order\'] = \'ASC\';
    }
}
add_filter(\'parse_query\', \'_s_staff_query\');

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

您的函数已经足够简单了,其次,函数可以做不同的事情:

  • _s_staff_query() 过滤POST查询变量,函数必须在之前运行WP_Query 查询数据库。

  • _s_staff_search() 过滤搜索结果模板,函数必须在之后运行WP_Query 查询数据库。

    所以要让他们保持独立。

相关推荐

Div-Wrap with Functions.php in ChildTheme Using Shorcode!

我只想为一个简单样式的DIV包装器创建一个短代码。在WordPress的网站上,我想添加如下内容:[quotehead]Headline text[/quotehead] ...a normal blockquote from wordpress... 输出应为:<div class=\"block_header\">Headline text</div> 我的内部功能functions.php (在childtheme中)包含以下内容:/**