Typecho 文档:匹配到搜索关键词则执行对应操作
适用程序: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); // 匹配关键词执行跳转 ?>
至此,当用户的搜索关键词包含自定义的关键词时,则执行跳转到自定义的链接页面。