Typecho 文档:匹配到搜索关键词则执行对应操作

2024年12月01日

适用程序:Typecho
程序版本:1.2.1
文档作者:Lopwon
作者博客:Lopwon.com
发布页面:Lopwon.com/attachment/3848/
许可方式:CC BY-NC-SA

注意:此文档源于作者在博客改造中的一些经验总结,转载还请署名。

敬告:此文档操作涉及程序核心文件的修改,作者不对你在使用中产生的任何问题造成的不良后果,承担责任。

文档说明

在制作指定范围搜索功能的插件 Lopwon Find 时,有一个需求:当用户的搜索关键词包含自定义的关键词时,则执行对应的操作,比如:默认的跳转到自定义的链接页面。当然,也可以实现类似于淘宝搜索到匹配商品时,则弹出领券领红包等浮层信息。


使用方法

A 涉及文件

usr/themes/***/functions.php

B 改造文件

作用:搜索匹配则跳转

1. 打开文件  usr/themes/***/functions.php 添加以下代码(留意注释,以及按需修改):

    function redirectIfMatch($keywords, $archive) {

        $array = [
            '商店' => 'store.html',
            'store' => 'store.html',
            // 添加更多
        ];

        foreach ($array as $key => $path) {
            if (stripos($keywords, $key) !== false) { // 如果指定关键词包含在搜索关键词
                $archive->response->redirect(Typecho_Common::url($path, Helper::options()->index)); // 跳转到该指定关键词对应的链接
                return; // 终止循环,防止多次跳转
            }
        }

    }

2. 打开文件  usr/themes/***/archive.php 添加以下代码:

    <?php redirectIfMatch($this->archiveTitle , $this); // 匹配关键词执行跳转 ?>

至此,当用户的搜索关键词包含自定义的关键词时,则执行跳转到自定义的链接页面。
store