dedecms织梦文档内容自动关联tag标签加入内链的方法

2022-06-09dedecms开发
238


最终实现效果如下图:内容生成之后会自动加上本篇文章的tags标签(文档生成时候自动加入,编辑器中内容实际没加入,更有利)


1、后台-系统-核心设置-关键字替换,选择【是】

2、后台-系统-其他选项-关键词替换次数,填【1】或者【0】

1:表示文档内容里有多个关键词,只让1个是内链

0:表示文档内容里有多个关键词,都是内链

根据自己的需要填

 



3、打开 /include/arc.archives.class.php 找到,大概在1187行至1241行,整个函数
 

 
function ReplaceKeyword($kw,&$body)
{
...中间代码省略
}
 
整个改成
 
function ReplaceKeyword($kw,&$body)
{
global $cfg_replace_num;
$search = "/(alt\s*=\s*|title\s*=\s*|src\s*=\s*)[\"|\'](.+?)[\"|\']/is";
$body = preg_replace_callback($search, array('Archives', '_base64_encode'), $body);
$addsql = '';
if(isset($this->Fields['tags']) && !empty($this->Fields['aid']))
{
$this->dsql->SetQuery("SELECT tid FROM `wmd_taglist` WHERE aid = '{$this->Fields['aid']}' ");
$this->dsql->Execute();
$ids = '';
while($row = $this->dsql->GetArray())
{
$ids .= ( $ids=='' ? $row['tid'] : ','.$row['tid'] );
}
if($ids != '')
{
$addsql = " WHERE id IN($ids) ";
}
if($addsql=='') return $body;
}
$query = "SELECT * FROM `wmd_tagindex` $addsql ORDER BY addtime DESC";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
$linkdatas = array();
while($row = $this->dsql->GetArray())
{
$row['keyword'] = $row['tag'];
$row['rpurl'] = $cfg_cmsurl."/".urlencode($row['tag'])."/";
$linkdatas[] = $row;
}
if($linkdatas) {
$word = $replacement = array();
foreach($linkdatas as $v) {
$word1[] = '/(?!(<a.*?))' . preg_quote($v['keyword'], '/') . '(?!.*<\/a>)/s';
$word2[] = $v['keyword'];
$replacement[] = '<a href="'.$v['rpurl'].'" target="_blank">'.$v['keyword'].'</a>';
}
if($cfg_replace_num) {
$body = preg_replace($word1, $replacement, $body, $cfg_replace_num);
} else {
$body = str_replace($word2, $replacement, $body);
}
}
$body = preg_replace_callback($search, array('Archives', '_base64_decode'), $body);
return $body;
}
function _base64_encode($matches) {
return $matches[1]."\"".base64_encode($matches[2])."\"";
}
function _base64_decode($matches) {
return $matches[1]."\"".base64_decode($matches[2])."\"";
}
 
 
4、完成,动态的直接看效果,静态的记得重新生成文档看效果
The End

相关推荐

织梦cms批量删除所有无效TAGS的办法
使用过DedeCMS的站长应当都遇到过这样的问题,在我们删掉一些文章内容后,tags标识中就慢慢拥有许多失效的标识存有,这种TAGS标识并不会跟随大家删掉文章内容一起删掉,如果是受欢迎的词还行,有很多文章内容都是有,如果是小众词,便会发生在TAGS目录有词,...
2023-08-17 dedecms开发
181

怎么修改织梦DEDECMS源码tags标签字数限制
修改织梦DEDECMS中TAG标签字数长度限制的方法共两个步骤,分别是对数据库字数和提交文件的字数进行修改。 一、我们通过织梦DEDECMS后台程序中的系统设置栏目下的SQL命令行工具,来修改数据库中表wmd_tagindex 和wmd_taglist的tag字段属性,将TAG字段属性中...
2023-02-16 dedecms开发
196

织梦dedecms列表页实现第一页与其他页调用不同模板的办法
我们想让dedecms织梦第一页与其他第二页、第三页、、、后面的页调用的不同模板,这个要怎么实现呢? 第一步 修改核心文件 打开 /include/arc.listview.class.php 找到,大概在第330行 $this-ParseDMFields($this-PageNo,1); 在它的上面加入: $tempfile = $GL...
2022-11-19 dedecms开发
195

织梦dedecms调用当前栏目文章数的方法
这篇文章给大家分享的是有关织梦dedecms调用当前栏目文章数的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 做模板时,经常需要为每个栏目加上此栏目的文章数。和大家分享下实现的方法,此方法适合5.6及5.7、5.7sp1其它...
2022-11-05 dedecms开发
186

dedecms织梦无需登录注册可下单购买的修改
dedecms织梦无需登录注册可下单购买的修改,首先找到/plus/carbuaction.php文件,找到如下代码: //确认用户登录信息if($cfg_ml-IsLogin()){ $userid = $cfg_ml-M_ID;}else{ $username = trim($username); $password = trim($password); if(empty($username)...
2022-11-02 dedecms开发
171

DEDECMS织梦复制https链接网站图片无法本地化的解决办法
现在许多网站使用了SSL技术,网站采用https链接,我们在复制https链接网站的内容,发现图片无法本地化,那么我们想要将这些图片本地化,要怎么操作呢? 第一步: 找到dede/inc/inc_archives_functions.php (注:前边红色的dede目录是您的后台目录) 定位到...
2022-06-15 dedecms开发
125