在 WordPress 使用关键词搜索文章,是一个常见的操作,WordPress 一般会简单的使用 MySQL like 语法去检索文章的标题,摘要和内容查出相关的文章。
一般情况 WordPress 这样搜索没有什么大的问题,可能中文分词会存在一些语义理解的小问题,但是多搜索几次总能找到想要的文章。
WordPress 搜索存在的问题
如果碰到攻击 WordPress 的搜索就有很大的问题,因为 WordPress 搜索的链接是 https://blog.wpjam.com/?s=关键词
,攻击者只要使用脚本不停的切换关键字,就会造成系统不停去数据库查询内容。
而这样 MySQL Like 查询相对来说是比较耗时的,就存在被攻击的漏洞,并且攻击的搜索的关键字都是随机的,连缓存都帮不了。
另外 WordPress 只是简单使用 MySQL like 语法去检索文章的标题,摘要和内容来查出相关的文章,没有别的选项,能不能只搜索标题?能不能搜索ID,甚至搜索自定义字段等。
WPJAM 的「搜索优化」插件就能为了这些功能而实现的,在碰到搜索攻击的时候,可以让我们限制,甚至关闭 WordPress 的搜索,然后还增强 WordPress 搜索能力,提供更多的选项。
安装 WPJAM 的「搜索优化」插件之后,在「WPJAM」菜单下就有「搜索优化」子菜单:
限制和关闭 WordPress 搜索
如上图所示,可以限制每个 IP 每分钟搜索多少次,达到上限之后屏蔽多少分钟,在遭受搜索攻击的时候,甚至可以直接关闭搜索,最后还可以设置管理员搜索功能不受影响。
下图就是用户搜索达到上限之后,用户再次搜索之后页面显示的效果:

小程序和微信公众号搜索限制
搜索限制的功能也整合到了微信公众号的搜索,只要使用微信机器人的自定义回复,那么该插件就会检测每个公众号用户的搜索使用频率来限制:

果酱小程序也会支持同样的搜索限制,目前前端还没做提示,等完成再给大家截图演示。
增强 WordPress 搜索能力
平时开发的时候经常会碰到一些搜索的优化,比如能不能只针对文章标题进行搜索,不用搜索文章内容和摘要,能不能根据自定义字段进行搜索,如果 WordPress 后台文章比较多,能不能根据文章 ID 快速检索,这样方便快速定位,这些功能「搜索优化」插件都实现了:

「当搜索关键词为空时重定向到首页,只有一篇文章时重定向到文章」这个功能原本是集成在 WPJAM Basic 中,我写了「搜索优化」插件之后,就整合到一起了。
「后台文章列表支持搜索ID」可以支持搜索单个 ID,如123
,搜索多个 ID 时候,用「,」分隔开,如123,456,678
。
「 支持搜索自定义字段」功能要特别注意一下,开启之后搜索效率会明显下降,然后需要指定在哪几个自定义字段的 meta_key 中搜索,不指定,该功能是不生效的。
以后关于 WordPress 搜索相关的功能,我都整合到 WPJAM 这个「搜索优化」中,并且该插件是免费的,按照下面方式获取:
获取「WordPress果酱」所有免费插件
为了方便大家获取「WordPress」果酱公众号的免费插件,以及日后的更新,我从这个插件开始,把所有免费的插件都一次打包给大家下载。
以后有新免费插件或者插件更新,都只需下载一个压缩包,然后一起安装或者更新即可。
所以记住了,以后的操作都是下面的方式,关键字也是固定为「免费」:
首先关注公众号「WordPress果酱」:
然后输入关键字「免费」即可获取。
插件 | 简介 |
---|---|
网址 |
最轻便快捷的网址导航插件 |
文章 |
设置文章在列表中隐藏的插件 |
编辑器 |
增强 WordPress 经典编辑器: |
搜索 |
支持限制和关闭搜索 |
格式化 |
在 WordPress 实现真正的文章格式 |
草稿 分享 |
一键生成草稿临时分享链接 |
Debug |
查询当前页面有多少条 SQL 查询 查询当前页面生成花了多少时间 |
⏬⏬ 下载 WPJAM Basic 请点击阅读原文