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

sadwind2024-04-08笔记509

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

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

【编程达人】火哥Windows内核课程(上+下)

【编程达人】火哥Windows内核课程(上+下)

描述:本套课程来自编程达人:课程官方售价上下(5499+5499)元,由编程达人一线老师主讲,主要讲解windows的保护模式,系统调试,异常发现及处理等等。本课程包含内核上下两部分,内核课程上11节...

通过COOKIE来控制广告显示

现在有一个广告,但是广告的形式不太友好,担心加载这个广告会严重影响网站浏览体验,不弄吧,网站又一点收益没有,于是想到一个办法,让网站在一定时间里,只展示一次这样的广告,这样能一定程序缓解网站访问者的容...

LAYUI 使用SELECT,动态改变INPUT值和属性

用form.on监听select事件即可,然后用JQUERY得到input的ID,来改变input的属性和值。但是我用的是FunAdmin的第三方表单组件,无法给input添加ID属性,所以只能用do...

一天显示一次广告JS代码

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

VUE学习:九.模板解析

前言模板指的是每个 page 下的 html 模板文件,vue 创建项目时,默认使用单页应用配置,模板文件的作用主要用于 webpack 中 html-webpack-plugin ...

VUE学习:七.单页应用

VUE学习:七.单页应用

前言SPA 单页面应用(SinglePage Web Application) ,指只有一个主页面的应用(一个 html 页面),一开始只需要加载一次 js、css 的相关资源。所有内容都包含在主页面...

Post Reply    

◎Welcome to participate in the discussion.