织梦cms文章内容自动添加tag内链
0
织梦CMS后台有一个“文档关键词维护”功能,在这里录入的关键词和对应的链接,可以实现在生成文章html的时候,自动为文中所包含的关键词添加内链的功能。
但是,这个功能随人已经很实用,却仍然需要手动去添加关键词。不添加,则无法实现关键词内链的目的。本文所介绍的方法是对这一功能的改进。即当文章中出现与站内tag相同的文字的时候,自动内链到相应的tag页面。更为自动化,省时省力。
织梦cms文章内容自动添加tag内链实现方法:
首先,在织梦后台系统设置--》核心设置--》关键字替换选择“是”。

然后再在后台系统设置--》其它选项--》关键词替换次数位置修改替换次数,1为只内链一次,0为全部添加内链。建议设置为1。

然后开始源文件,打开 /include/arc.archives.class.php 找到下面代码区域:
function ReplaceKeyword($kw,&$body){
...
}
把其中大括号内省略号部分的内容替换成下面代码:
function ReplaceKeyword($kw,&$body){ global $cfg_replace_num; //如果当前文档没有tag直接不内链,需要匹配所有tag的话,删除下面行
if(GetTags($this->Fields['aid']) == '') return $body;
$search = "/(alt\s*=\s*|title\s*=\s*|src\s*=\s*)[\"|\'](.+?)[\"|\']/is";
$body = preg_replace_callback($search, array('Archives', '_base64_encode'), $body);
$addsql = ''; $this->dsql->SetQuery("SELECT tid FROM `dede_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) ";
}
$query = "SELECT * FROM `dede_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."/tags.php?/".urlencode($row['tag'])."/";
$linkdatas[] = $row;
} if($linkdatas) {
$word = $replacement = array(); foreach($linkdatas as $v) {
$word0[] = "/]*>{$v['keyword']}<\/a>/is";
$word1[] = '/'.$v['keyword'].'/is';
$word2[] = $v['keyword'];
$replacement[] = ''.$v['keyword'].'';
} if($cfg_replace_num) {
$body = preg_replace($word0, $word2, $body, $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])."\"";
}
如果你的网站使用了tag静态化插件或者tag伪静态,则将下面这些代码:
$cfg_cmsurl."/tags.php?/".urlencode($row['tag'])."/";
修改成和include/taglib/tag.lib.php里面一致的代码即可,如下图:

修改完成后,重新生成文章html即可看到tag自动添加内链的效果。
赞(0)
打赏
微信 支付宝 QQ 扫码打赏
网站内链布局
织梦tag标签怎么批量修改
dedecmstag标签插件
内链和外链
dedecms调用商品tag
织梦文章tag标签不能写入
dedecms批量tag
dede调用指定tag
从高版本的phpmyadmin里面导出的数据库sql文件在导入低版本的phpmyadmin时报错:#1115 - Unknown character set: 'utf8mb4'开始以为是导出的数据有问题,反复尝试导入导出多次之后问题依旧。于是咨询度娘。发现解...
织梦cms安装之后,在网站后台首页的顶部会有一条提示:强烈建议data/common.inc.php文件属性设置为644(Linux/Unix)或只读(NT)。这个是dede出于系统安全考虑,防止别人入侵网站。linux服务器可以直接通过ftp修改文件权限为6...
安全无小事,不管做什么事情都应该把安全管理放在第一位。做网站也是这样。织梦cms是目前国内应用最广泛的cms系统,因为用户群巨大,所以更容易被黑客们盯上,于是便有了很多由于dedecms漏洞所导致的被渗透入侵提权的事件。dedesql.class.php变量覆...
在学习php编程和使用php做项目的时候随机取数值是一个使用率很高的功能,使用rand可以生成一个随机数。mt_rand则可以生成一个指定范围内的随机数值。例如:mt_rand(1, 20)则可以输出1-20之间的一个随机数,其中包含1和20本身。
使用php进行二维数组随机排序的写法为:gif动图演示一下php二维数组随机排序的执行结果:
本文整理了一些常用的php截取字符串的方法,可以使用多大多数需要使用php截取指定位置、指定截取数量字符串的操作。实例1:实例2:实例3:实例4:实例5:实例6:实例7:
使用php处理网站或者数据库内容的时候,经常会有需要提取一些字符串中数字的需求,这里整理一下一些最常用的使用php从字符串中提取数字的方法。①使用php提取一段字符串中的第一组数字②php中使用正则表达式来提取字符串中的数字③php中使用in_array提取字...
这是个简单的php中str_replace使用的例子,目的是实现从一个指定的字符串中删除指定的几个字符。在很多文本处理的实际项目中会经常用到。现在又有一个字符串为“我是一个大大的红苹果”,我们想把这段字符串用php处理成“我是一个红苹果”,那么可以使用下面代码...
织梦cms模板本身可调用的标签已经很丰富,但又有些调用需求是默认标签满足不了的,这时候就要用的在dede模板中执行php代码的方法。{dede:php}具体用法:使用php标签调用普通标签的方法:{dede:php}print_r($refObj->Field...
使用php获取html页面内容之后,经常会使用正则表达式来匹配一些具备特定属性的文本元素,获取之后,可以用下面语句对数据进行循环输出,来输出前面获取到的所有数组成员。这里是用都好连接的,用别的连接符替换上面的逗号即可。
首先,php获取挡也页面完整url和从当前页面url中获取每个部分参数的方法:测试网址: http://localhost/blog/testurl.php?id=5//获取域名或主机地址echo $_SERVER['HTTP_HOST'].""; #loca...
用下面代码,去掉字符串中最后面一位逗号。$str = "1,2,3,4,5,6,"; $newstr = substr($str,0,strlen($str)-1); echo $newstr;输出结果为:1,2,3,4,5,6,这里面也可以省略,省略后这样写...
使用PHP在输出中问的时候自动输出对应的拼音和英文。原理为,英文调用百度翻译接口(需要自行申请),中可以本地化,使用拼音字库。点我下载PHP自拼音字库。汉字自动转拼音和英文的PHP代码的写法:以上代码经过测试,不是深度使用的话基本能满足需求。
前面写过一个PHP自动将汉字转为拼音和翻译成英文的例子,今天在分享一个PHP自动转拼音的例子,本例子还可以实现PHP汉字转拼音时候选择注音、首字母和首字母大写的效果。汉字库已经包含在了php代码内。不过因为汉字库文件内容太长,所以把他写到了一个记事本内,下载后...
首先说明关于织梦出现此处关于织梦文件夹访问权限问题的背景并不是常规的644权限提示,如果只是刚安装好织梦cms之后后台出现这个提示的话,按照提示操作修改权限即可。如果没有特殊问题修改后刷新dedecms后台会发现提示不见了。反复修改这个提示始终存在的话才有必要...
织梦dedecms多城市分站插件的作用:织梦的静态化模式很适合做企业站,后台简单易用,并且生成静态后基本不占用服务器的cpu资源。企业站产品面对全国的时候,我们就希望网站可以获得很多带有地域性关键词的流量,这时候,制作全国各个城市的分站是很好的选择。但dede...
织梦cms后台有一个“文档关键词维护”功能,在这里录入的关键词和对应的链接,可以实现在生成文章html的时候,自动为文中所包含的关键词添加内链的功能。但是,这个功能随人已经很实用,却仍然需要手动去添加关键词。不添加,则无法实现关键词内链的目的。本文所介绍的方法...
在前台页面输出当前页面的url可以做一些url规范化等用途,织梦cms标签tag页面默认没有对应的标签可以直接获取。需要特殊调用。动态页面调用方法:{dede:field.title runphp=yes}global $cfg_cmsurl;@me = $c...
浏览器登录phpmyadmin的时候报错:Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin。可能的原因有三点:1、检查配置文...
织梦cms调用tag标签的常规代码如下:{dede:tag}[field:tag/]{/dede:tag}但是,这个代码在文章页面使用的话,只能调取到当前文章的tag标签,如果想在文章页面调用全站的tag标签,代码应该这样写:{dede:tag row='20...
前面讲过怎么删除user.ini,但有的朋友并不想删除他,而是想修改它,那么可以按照本文操作。使用lsattr .user.ini查看此文件的属性,会发现它有一个i属性,具备这个i属性是被禁止进行任何操作的,包括删除、修改、移动等等。那么我们chattr -i...
鼠标的灵敏度可以在计算机的操作系统或者鼠标驱动程序中进行调整。具体的调整方法可能会因操作系统和鼠标驱动的不同而有所差异,以下是一些常见的调整方法:在Windows操作系统中:在任务栏上右键单击鼠标图标,然后选择"鼠标属性"或者"鼠标设置"。在打开的窗口中,切换...
Notepad++ 是一款文本编辑器,通常不提供特效功能,但可以使用插件或扩展来实现某些特效。以下是一些可以在 Notepad++ 中实现的特效:代码高亮:Notepad++ 可以根据不同的编程语言自动高亮显示代码,使代码更易于阅读和理解。自动补全:Notep...