PbootCMS关键字匹配文章详情页显示相关内容

在PbootCMS的文章中,我们可以使用keywords关键字来进行匹配,并在文章详情页显示相关内容。但是,在某些情况下,客户不希望使用tags标签来进行匹配。那么,我们该如何通过keywords进行匹配呢?我们将介绍如何进行二次开发。

打开ParserController.php文件

我们需要找到文件\apps\home\controller\ParserController.php,并搜索“tags数据参数筛选”。在该位置上方,我们会看到以下代码:

$aTag = $model->field('name')->where(['id'=>['in', $aTags]])->select()->toArray();
foreach ($aTag as $v) {
    $aTags[] = $v['name'];
}
if (!empty($aTags)) {
    $aWhere['tags'] = ['like', '%'.implode(',', $aTags).'%'];
}

这段代码会根据tags标签进行数据筛选,并将符合条件的数据加入到数组$aWhere中。

修改代码

我们需要将上述代码中的“tags”改为“keywords”,以便根据文章keywords进行筛选。具体来说,将上述代码修改为以下内容:

if (!empty($keywords)) {
    $aWhere['keywords'] = ['like', '%'.$keywords.'%'];
}

这段代码会根据keywords关键字进行数据筛选,并将符合条件的数据加入到数组$aWhere中。

实现匹配相关内容

我们需要在文章详情页的列表调用代码中添加“tags={content:keywords}”来实现匹配相关内容。具体来说,可以将以下代码添加到列表调用代码中:

$params = [
    'id' => ['neq', $id],
    'status'=> 1,
    'cid' => $data['cid'],
    'orderby'=>'addtime DESC',
    'limit' => 10,
    'tags' => '{content:'.$data['keywords'].'}'
];

这段代码会根据当前文章的keywords关键字,在文章详情页的列表中显示与之相关的其他文章。

通过以上修改,我们就可以通过keywords关键字进行数据筛选,并在文章详情页显示相关内容。需要注意的是,由于keywords关键字是手动设置的,我们必须确保每篇文章都有正确的keywords关键字,以便准确地匹配相关内容。

本文链接:http://task.lmcjl.com/news/5556.html

展开阅读全文