DedeCMS文章页通过关键词调取相关文章
修改一下文件,就能实现织梦dede后台怎么查找文章内容关键词。
登录网站ftp后台,找到后台目录,默认是dede,一般都会修改这个目录名称,然后再找到content_listphp这个文件,备份一下,下载下来后用Dreamweaver打开编辑,找到185行的以下内容:
$whereSql = " And ( CONCAT(arctitle,arcwriter) like '%$keyword%') ";替换成:
$whereSql = " left join dede_addonarticle on arcid=dede_addonarticleaid "$whereSql" And ( CONCAT(dede_addonarticlebody,arctitle,arcwriter) like '%$keyword%') ";替换完成以后重新刷新一下后台,再键入相关关键词的时候,就会出现很多标题中不含搜索关键词的文章列表,这些文章就是内容中包含搜索关键词的文章,点击进去以后,按ctrl+f就可以查找到关键词在文章中所在位置,这就是怎么查找dede文章中的关键词,这个还是比较的方便。
第一步:进入网站后台进行设置
1、首先登录网站管理后台 选择 系统-系统基本参数-核心设置>找到关键词替换(是/否)一栏 选择 是
2、然后在 系统-系统基本参数-其他选项 中 找到 文档内容同一关键词替换次数(0为全部替换): 后面写个 1或者2,这个随便自己写
3 在后台的 采集- 文档关键词维护一栏 对关键词 加上需要的链接!
这时有个小问题需要解决下 经过以上的几个步骤 只能实现 在关键词 一栏中填写的关键词 才会有链接! 而内容出现的并没链接 所以 我们需要通过下一步来实现 内容页出现链接
第二步:打开/include/arcarchivesclassphp进行代码替换,
找到下面代码
foreach($kws as $k) { $k = trim($k); if($k!=”") { if($i > $maxkey) { break; } $myrow = $this->dsql->GetOne(“select from dede_keywords where keyword=’$k’ And rpurl<>” “); if(is_array($myrow)) { $karr[] = $k; $GLOBALS['replaced'][$k] = 0; $kaarr[] = “<a href=’{$myrow['rpurl']}’><u>$k</u></a>”; } $i++; } }
替换为:
global $dsql; $query=”SELECT FROM dede_keywords WHERE rpurl<>” ORDER BY rank DESC”; $dsql->SetQuery($query); $dsql->Execute(); while($row = $dsql->GetArray()) { $key = trim($row['keyword']); $key_url=trim($row['rpurl']); $karr[] = $key; $kaarr[] = “<a href=’$key_url’ target=’_blank’><u>$key</u></a>”; }
这样我们就设置好了,但是我们一般尽量设置核心关键词,不要次数过多,不然可能导致优化过度
使用likearticle这个标签调用即可
标签名称:likearticle
功能说明:自动关连文档标签
使用实例:
{dede:likearticle row='' col='' titlelen='' infolen=''}<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:likearticle}
参数说明:
col='' 分多少列显示(默认为单列)
row='10' 返回文档列表总数
titlelen = '30' 标题长度 等同于titlelength
infolen='160' 表示内容简介长度 等同于infolength
mytypeid=0 手工指定要限定的栏目id,用,分开表示多个
innertext = '' 单条记录样式(指标签中间的内容)
想要进行全站的相关文章调用的话看下边
修改方法:
找到文件:\include\taglib\likearticlelibphp
找到代码:
$typeid = "And arctypeid in($typeid) And arcid<>$arcid ";
修改为:
$typeid = " And arcid<>$arcid ";
即可实现dede织梦利用likearticle标签实现调用全站相关文章问题
你这个 是css问题 如果不出意外 你这里是 用的 li 标签吧 很明显 你没控制 关键词的长度 导致 关键词的长度超过了每个单元的宽度造成换行了三种处理方式:第一,在dedecms模板里面 对关键词的长度进行处理,多了就切掉 保证只有一行;第二,给该展示标签加上一句: overflow:hidden; 让其对多余的字符进行不展示处理;第三:增加该DOM的宽度 使其能够完整的单行展示
总的说来,本人都不是很喜欢 我觉得最好的办法 是 弹性处理 就是不限制该DOM的宽度
网站关键词内链,是做好网站内部优化的一个重要环节
织梦(DedeCms)官方默认规则是:
1添加关键词和关键词的链接地址
设置步骤:进入后台 核心->批量维护->文档关键词维护
2文章内容出现该关键词
3文章的关键词出现这个词(就是这里<meta name="keywords" content="" />) //这个是在发布文章的时候填写的
第三条规则使得关键词内链不尽完美,所以得修改文件取消掉第三条规则,达到我们想要的效果,即文章内出现该关键词即链向指定的URL
在Dedecms55,56下测试有效
一、开打include/arcarchivesclassphp 文件
二、查找 function ReplaceKeyword($kw,&$body)
三、往下找到下面这段代码,删除或注释掉
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
foreach($kws as $k)
{
$k = trim($k);
if($k!="")
{
if($i > $maxkey)
{
break;
}
$myrow = $this->dsql->GetOne("select from #@__keywords where keyword='$k' And rpurl<>'' ");
if(is_array($myrow))
{
$karr[] = $k;
$GLOBALS['replaced'][$k] = 0;
$kaarr[] = "<span style="text-decoration: underline;">$k</span>";
}
$i++;
}
}
四、并在注释或删除的代码下面加入以下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$dsql = new DedeSql(false);
$query="select from #@__keywords where rpurl<>'' ";
$dsql->SetQuery($query);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$key = trim($row['keyword']);
$rul=trim($row['rpurl']);
if($rul!="")
if(!in_array($key, $kw))
if(!in_array($kw,$key))
if(substr_count($body,$key)<20)
{
$karr[] = $key;
$kaarr[] = "$key";
}
}
五、OK,已经修改完成了。直接复制上面代码,文章内同样的关键词只会出现一个链接。
六、一键更新网站->更新所有
0条评论