WordPress搜索功能增强的开发思路

张子凡 WordPress优化 2022-04-19 12:06:21 阅读(...) 评论(8)

来给大家分享一个子凡我最近开发 WordPress 搜索增强功能的一个思路,主要目的就是出于网站搜索聚合页面的优化,其次当然就是提升网站搜索结果相关度和内容丰富程度,用 WordPress 的朋友应该都知道,WordPress 本身的搜索过于单纯,精准匹配对于网站搜索来说可能几乎搜索不到任何的内容,对于普通用户搜索也不会用关键和空格分隔的方式来搜索。

WordPress search 搜索

所以最近子凡给我们的泪雪网搜索做了巨大的升级和优化,今天主要就是分享其中一个增强 WordPress 搜索功能的思路,那就是利用 WordPress 本身的 tag 标签来作为词库,然后给搜索词做分词切割,这样做的好处是分词词库都是根据我们网站标签而来,相对而言更为准确和有效,其次是网站本身的数据接口,开发和使用起来拥有绝对的控制权,相比使用第三方分词接口或者分词词库更好的本地化了。

第三方分词当然还是能找到免费的分词接口,并且还有人开发过 WordPress 搜索分词插件,当然也还有利用开源的分词库来做了插件,但是子凡看了都不是很理想,主要就是第三方接口的稳定性和以后的发展,我可不想用着用着那天就没法用了,我不想做这种无用功,其次就是对于付费的接口,我想我暂时肯定是接受不了的,毕竟搜索这个功能属于长期运营,忽然间多出这么一部分支出当然是划不来的。

那么子凡经过再三研究和对比考虑,最后还是选择利用 WordPress 标签功能作为词库来给 WordPress 搜索做分词处理。稍微详细的开发思路如下:

1、利用 get_tags 函数获取所有函数,因为是分词所以可以设置 hide_empty 为 false,就算是空标签也可以用来做分词;

2、然后使用 wp_list_pluck 来提取标签数组中所有标签 name 名称,这样标签词库就是一个完整的数组了;

3、为了后续的开发和使用效率,子凡我用 wp_cache_set 做了缓存设置,有效期设置的一天时间,当然还可以利用其它方式做缓存等等,反正就是避免每次分词都要获取一次全部的标签,造成服务器压力和延迟;

4、最后 foreach 循环加上 strpos 开始拆分搜索词,并且记录好分词和标签关键词,根据自己实际的开发需求做后续开发即可。

好啦,子凡就只能简单的给大家分享到这里,如果你有什么更加优秀的方式方法欢迎留言告诉子凡,特别是如果能够比这个方法更加高效,务必要告诉一下子凡哦。

更多关于WordPress优化及疑问可以添加QQ群:255308000

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wordpress-search-enhanced-methods.html

发表评论

  1. 缙哥哥
    1楼
    缙哥哥 05月04日

    是插件吗?我能预购吗?

    • 张子凡
      回复
      张子凡 05月04日
      回复 @缙哥哥 :暂时没有考虑开发成插件发布出来,目前还用于我们自己的部分网站上测试,后期可能会考虑
      • 缙哥哥
        回复
        缙哥哥 05月04日
        回复 @张子凡 :还希望能增加按文章类别搜索,如果一定时间内搜索结果大于*次,缓存到内存之类的就更好了。
        • 张子凡
          回复
          张子凡 05月05日
          回复 @缙哥哥 :感谢建议,我记下了,争取有机会来开发这个完善的增强搜索插件。
  2. 鸟叔
    2楼
    鸟叔 04月23日

    不知道为啥谷歌收录我的标签,不收录文章

    • 张子凡
      回复
      张子凡 04月24日
      回复 @鸟叔 :正常情况下标签类聚合页面的收录大多都比文章更容易被收录。
  3. 童主任
    3楼
    童主任 04月19日

    腾讯云分词,五十万每天,我用了一年多了。

    • 张子凡
      回复
      张子凡 04月20日
      回复 @童主任 :有简单的去了解过腾讯云的分词,最后没有选择是因为选用WordPress标签能够更好的自定义,并且可以帮助网站本身做好标签聚合页的优化。