预计阅读时间: 1分钟

在使用Typecho的过程中发现一个问题,查询一个词,明明数据库中有这一条数据,在查询结果中怎么都查不出来,后面研究了很久,发现是typecho自动给它过滤了空格,比如查询英文词组,它中间必然带有空格,如果查询my name is,它自动给变成了mynameis,自然无法查询到结果。

搜索页面关键词带有空格被过滤:

打开/var/Widget/Archive.php文件,找到:

$keywords = $this->request->filter('url', 'search')->keywords;

替换成:

$keywords = $this->request->keywords;

使用Typecho查询语句被过滤:

打开/var/Typecho/Db/Query.php文件,找到:

if (false !== strpos(' ,)=<>.+-*/', $cha)) {

替换成:

if (false !== strpos(',)=<>.+-*/', $cha)) {

这样在开发查询的功能时,就不会过滤空格了。

后台搜索分割空格分成多词查询

打开/var/Widget/Contents/Post/Admin.php文件,找到:

$keywordsList = explode(' ', $keywords);

替换成:

$keywordsList = [$keywords];

标签: Typecho

添加新评论

*所有评论审核后方可显示,请自觉维护清朗的互联网环境,不要发布违法违规及攻击他人言论。