DedeCMS文章页通过关键词调取相关文章

DedeCMS文章页通过关键词调取相关文章,第1张

修改一下文件,就能实现织梦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,已经修改完成了。直接复制上面代码,文章内同样的关键词只会出现一个链接。

六、一键更新网站->更新所有

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » DedeCMS文章页通过关键词调取相关文章

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情