前段时间因为没有使用关键词关联文章这个功能,所以没在意,但是最近发现建了内链,对文章的排名起到了很大的作用,于是就入手了整理了内部链接,但是在操作过程中遇到了很多问题,dede不能自动替换关键词,不能用关键词关联文章等等使用关键词关连文章,于是开始在上面找互联网。找了很多方法,不能说没用,但各有不足,就自己动手了。研究了半天,终于想通了,今天就分享给大家。
如何根据dede的默认值正确替换关键字?1.需要在后台设置关键字链接地址,2.需要在系统基本参数设置中找到核心设置---关键字替换(是/否) 使用该功能会影响HTML生成速度:选择是使用关键词关连文章,3.需要在基本系统参数中找到性能选项----使用关键字相关文章:是。4.那你需要在发布内容的时候在内容的标签中填写你要替换的关键字(V5.7以下的版本)V5.7以上的版本需要你在文章关键词中填写你要替换的关键词或者关键词不能为空。只有满足这些,dede才会替换你要替换的关键词。例如,当我在我的网站ixuela com/yingyu/yufa/12944 html上发表文章的时候,想把名词、代词等关键词链接到我想要的页面,但是我发表的时候很懒,而且我如果你不这样做不想填写标签和关键字,发布时不能替换关键字链接。您可以通过以下方法替换它而无需填写标签和关键字。
很多朋友发表文章时,有一半没有填写关键词或标签,时间长了这个功能就会失效。那么如何解决呢?我们先看一下dede解钱的默认代码,以及解出的代码,下面分析一下就明白了。.
代码有 2 个部分,一个在 arc.archives.class 中。php 中的第 204 行左右。一个是最后的函数 ReplaceKeyword($kw,&$body) 函数,我们来看看解法前后代码的区别。
解决方案之前:204行代码:
复制到剪贴板
引用内容:[]
if($arr['type']=='htmltext' && $GLOBALS['cfg_keyword_replace']=='Y' && !empty($this->Fields['keywords']))
{
$this->Fields[$nk] = $this->ReplaceKeyword($this->Fields['keywords'],$this->Fields[$nk]);
}
求解前ReplaceKeyword函数的代码:
复制到剪贴板
引用内容:[]
函数替换关键字($kw,&$body)
{
全局 $cfg_cmspath;
$maxkey = 5;
$kws = 爆炸(",",trim($kw)); //使用split作为分隔符
$i=0;
$karr = $kaarr = $GLOBALS['replaced'] = array();
// 临时阻止超链接
$body = preg_replace("/(
先分析一下204行代码,细心的朋友可能发现解后的代码比解前的少 && !empty($this->Fields['keywords'] 没错,就是这个原因,dede获取关键字的时候,你需要判断一下这篇文章的关键词你填了吗,但是他没看清楚。仅此而已,其实这个也没必要改,因为它们代表的意思不一样。
cfg_keyword_replace 是指关键字替换(是/否)。使用这个函数会影响HTML生成速度:这个和cfg_keyword_like是指使用关键字相关的文章:
然后我们通过从你填写的tag中遍历tag来分析ReplaceKeyword的原始dede,然后和你设置的文档关键词进行对比。如果找到,请将关键字替换为带有链接的关键字。如果标签为空,则无法执行。这就是为什么大家没有把文章和文档关键词关联起来的原因,在解决方案中,不要让他直接遍历标签,直接替换,就解决了。
但是出现了几个问题。1、这样会降低生成文章的速度。2、关键词链接总数无法控制。希望有人能解决。