微信关注,获取新知

WordPress自定义类型的搜索结果页面模板展现方式

我们在开发WordPress企业网站的时候,基本上都需要单独自定义文章类型的。这样在前端处理搜索结果的时候不希望混淆所有的类型内容,这里我们如果有在开发一个导航的类型希望搜索结果出现只有导航的文章类型。

这里,我们可以通过2个方式展现。

在主题目录下创建以下文件:

search-navigation.php → 仅处理 navigation 类型的搜索结果

search.php → 默认搜索结果模板(处理普通文章)

1、通过模板层级自动区分

WordPress 会自动优先加载 search-{post_type}.php。只需确保:

搜索表单中隐藏传递 post_type 参数:

<form action="/" method="get">
<input type="text" name="s" placeholder="搜索导航...">
<input type="hidden" name="post_type" value="navigation"> <!-- 关键参数 -->
</form>

当搜索词包含 post_type=navigation 时,WordPress 会自动加载 search-navigation.php

2、强制模板重定向

add_filter('template_include', function($template) {
    if (is_search() && isset($_GET['post_type']) && $_GET['post_type'] === 'navigation') {
        $new_template = locate_template('search-navigation.php');
        if ($new_template) return $new_template;
    }
    return $template;
});

这样,我们只需要单独创建一个search-navigation.php,搜索结果都会在这个模版中展示。

投上你的一票

未经允许不得转载:老蒋玩运营 » WordPress自定义类型的搜索结果页面模板展现方式