WORDPRESS 使用结巴实现搜索中文分词

sadwind2024-04-08笔记3422

详细安装及说明参考以下,已经有比较详细的教程了:

https://cloud.tencent.com/developer/article/2221841

GITHUB:https://github.com/ixqbar/phpjieba

下面说一下,几个注意点,我用的是宝塔面板,安装了几个PHP版本,因为我试了几次都没有成功,尝试了几次才成功:

1,第一次安装时,没有指定目录,默认安装到root文件夹下,可能权限问题导致错误,后来改到其它目录。

2,官方说明此插件(扩展)是支持PHP5/PHP7的,我的WORDPRESS用的是PHP7.1,不知道是不是和这个有关系,后来将PHP版本改到7.0

3,注意 指定恰当的路径:./configure –with-php-config=/usr/local/php/bin/php-config 我的PHP7.0是这样的:./configure –with-php-config=/www/server/php/70/bin/php-config

4,修改php.ini时,jieba.dict_path=/root/phpjieba/cjieba/dict ,后面的路径要用自己实际的,我的是jieba.dict_path=/www/server/phpjieba/cjieba/dict

5,如果是WORDPRESS,别忘记在functions.php中加上以下代码(当然之前操作完成,别忘了重启PHP):

 function custom_search( $search_result, $wp_query ) {
  global $wpdb;
  if( !$wp_query->is_search ) {
   return $search_result; 
  }
  if( !isset( $wp_query->query_vars ) ) {
   return $search_result; 
  }$key_string=$wp_query->query_vars['s'];
  $keywords =jieba($key_string);
  if ( count( $keywords ) > 0 ) {
   $search_result = '';
   foreach ( $keywords as $keyword ) {
    if ( !empty( $keyword ) ) {
     $keywords = '%' . esc_sql( $keyword ) . '%';
     $search_result .= " 
      AND (
       {$wpdb->posts}.post_title LIKE '{$keywords}'
        OR {$wpdb->posts}.post_content LIKE '{$keywords}'
        OR {$wpdb->posts}.ID IN (
         SELECT distinct post_id         FROM {$wpdb->postmeta}
         WHERE meta_value LIKE '{$keywords}'
        )
      ) ";
    }
   }
  }
  return $search_result;
 }
 add_filter( 'posts_search','custom_search', 10, 2 );


relate content

使用字符串匹配 屏蔽一下搜索关键词

总是有些不怀好意的人,使用一些SQL注入词来尝试搜索,真想对这些人说一句,去你妈的。网站会记录搜索词,我不想记录这些数据,同时也想单独对这些人做一个提示页面,就将一些常用SQL注入字符做个数组,然后跳...

FASTADMIN 个别页面不使用默认的layout(默认模板)

有的应用定义了默认模板layout,(protected $layout = 'default';)在方法实现时会自动加上定义的模板内容,而个别页面如弹窗我不想要页面头部和底部等&nb...

VUE学习:十三.代码管理

前言前端开发中对代码的处理:代码的存储、代码的管控、代码的提交与合并#1.代码仓库以gitlab 为例配置 ssh权限#2.代码管理简单项目分支dev:开发分支,直接在 dev 上进行开发,测试环境没...

VUE学习:四.环境配置

前言前端项目开发中,一般会有几个环境:dev:是程序员们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告sit:dev 环境完成需求开发就可以将代码打包到 sit 环境...

扩展 layui 的导出插件 layui.excel

就像下面说的一样,遇到问题。https://gitee.com/zypy333/layui-excel之前在工作过程中还有社区交流过程中,发现对导出 Excel 文件有需求,所以就萌发了封装插件的想法...

一天显示一次广告JS代码

window.onload = function () {        &nb...

Post Reply    

◎Welcome to participate in the discussion.