php全站文章搜索,Discuz X3.1全站文章全文检索的实现方法

本文介绍了如何在Discuz X3.1版本中通过修改`table_portal_article_content.php`和`search_portal.php`文件,使用like操作实现全站文章内容的全文检索。当标题搜索无果时,系统将搜索文章内容。此方法适用于中小型网站,修改涉及FTP工具、Notepad++,并需要更新后台缓存和清除浏览器缓存以生效。
摘要由CSDN通过智能技术生成

今天无忧主机小编分享的这个全站文章全文检索方法是直接通过like来实现的,这个方法比较适用于中小型网站。以下操作方法discuz版本为20140101的X3.1。具体方法如下:

首先,这是通过对文件修改添加代码来实现功能的,所以我们需要准备FTP工具,和高级记事本(notepad++)。

第一步:连接FTP工具,到指定网站程序目录下找到文件:\source\class\table\table_portal_article_content.php,找到后,邮件传输到本地,用Notepad打开编辑;

第二步:在该文件内添加代码:

在这段代码:

class table_portal_article_content extends discuz_table

{

下面新增如下代码:

public function fetch_all_by_sql($where, $order = '', $start = 0, $limit = 0, $count = 0, $alias = '') {

$where = $where && !is_array($where) ? " WHERE $where" : '';

if(is_array($order)) {

$order = '';

}

if($count) {

return DB::result_first('SELECT count(*) FROM '.DB::table($this->_table).' %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order));

}

return DB::fetch_all('SELECT * FROM '.DB::table($this->_table).' %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order));

}

新增完代码以后,上面添加那个方法才能用$query = C::t(‘portal_article_content’)->fetch_all_by_sql。

第三步:把\source\module\search\search_portal.php文件下载到本地,编辑搜索一下代码:

foreach($query as $article) {

$ids .= ','.$article['aid'];

$num++;

}

找到这段代码以后,在后面添加以下代码:

if($num==0){

list($srchtxt, $srchtxtsql) = searchkey($keyword, "content LIKE '%{text}%'", true);

$query = C::t('portal_article_content')->fetch_all_by_sql(' 1 '.$srchtxtsql, 'ORDER BY aid DESC ', 0, $_G['setting']['search']['portal']['maxsearchresults']);

foreach($query as $article) {

$ids .= ','.$article['aid'];

$num++;

}

}

两个文件都修改成功以后,就可以保存并上传到空间上面去了,原来的文件,可以在文件重命名。(直接覆盖也是可以的,但是小编不推荐。)

以上新增两段代码的意思是:如果搜文章标题没搜到,那就用like来搜文章的内容。

两个文件都上传到了空间程序指定目录下后,登陆DZ网站后台更新下discuz的缓存,然后清空一下浏览器缓存,搜文章里的内容试试,如果能搜到,那么无忧主机小编送你五个字:“那都不是事”。

本文地址:https://www.51php.com/discuz/14943.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值