如何利用dedecms织梦tag和keyword调用相关文章?

avatar
作者
筋斗云
阅读量:0
在dedecms织梦中,可以通过tag关键字调用相关文章。具体操作如下:,,1. 在模板文件中,找到需要调用相关文章的位置;,2. 在该位置插入以下代码:,,``php,{dede:arclist type='commend' row='8' titlelen='30' orderby='click'}, [field:textlink /][field:click /] 次阅读 [field:title function="cn_substr(@me,30)" /],{/dede:arclist},`,,这段代码会调用与当前文章具有相同tag关键字的相关文章,并按照点击量降序排列,显示8篇文章。你可以根据需要修改参数,如row表示显示的文章数量,titlelen`表示标题长度等。

在织梦CMS(DedeCMS)中,通过标签调用相关文章和关键字是一种常见且有效的方法,能够提升网站内容的关联性和SEO效果,下面将详细介绍如何利用织梦中的tag和keyword功能来调用相关文章:

调用tag列表页显示文章所属栏目和链接

在tag列表页上显示每篇文章的所属栏目和对应的链接,可以通过以下代码实现:

 [field:typelink/]

这段代码会获取当前文章所属的栏目链接,并在tag列表页上进行展示。

如何利用dedecms织梦tag和keyword调用相关文章?

网站列表页调用带链接的tag

在网站的列表页上直接调用带有链接的tag,可以使用如下代码:

 [field:id runphp='yes'] global $cfg_cmspath; $tags = GetTags(@me); $revalue = ''; $tags = explode(',', $tags); foreach($tags as $key => $value){     if($value){         $revalue .= '<a href="'.$cfg_cmspath.'/tags.php?/'.$value.'/">'.$value.'</a>&nbsp;';     } } @me = $revalue; [/field:id]

这段代码首先获取文章的所有tag,然后遍历这些tag并生成带链接的HTML代码。

文章内直接调用tag

页里直接调用tag,可以使用以下代码:

 {dede:tag table='dede_search_keywords' sort='keyword' row='5' if=''} <a href='[field:link/]' class='tagc[field:highlight /]'>[field:tag /] </a> {/dede:tag}

此代码会在文章内容页中调用并显示最多5个与该文章相关的tag。

实现热门标签展示

要展示热门标签,可以在模板文件中添加以下代码:

 {dede:tag sort='click' row='20'} <a href='[field:link/]'>[field:tag /]</a> {/dede:tag}

这段代码会根据点击次数从多到少展示前20个热门标签。

使用taglist.htm文件进行筛选

可以在templets目录下找到tag.htmtaglist.htm文件,通过修改这些文件来实现对tag的筛选和自定义显示。

设置tag位置导航

在列表页中添加文章的tag,可以增强导航性:

 <!列表页添加文章tag > {dede:field name='tag'/}

这样会在列表页中为每篇文章添加其相应的tag。

文章内页调用自身tag

页调用文章自身的tag,可以使用以下代码:

 {dede:field name='tag' function='GetTags(@me)'/}

这段代码会在文章内容页中显示该文章自身的所有tag。

自定义类库文件实现精准获取相关文章

官方提供的dede:likearticle标签可能不够精准,可以通过自定义一个类库文件来实现更精确的相关文章调用,在include/taglib下添加一个liketags.lib.php如下:

 <?php if(!function_exists('lib_liketags')) {     function lib_liketags(&$ctag, &$refObj) {         global $dsql, $envs;         // 属性处理         $attlist = "row|12,titlelen|30,infolen|250,col|1,tablewidth|100,typeid|0,byabs|0,imgwidth|120,imgheight|90,flag|";         FillAttsDefault($ctag>CAttribute>Items, $attlist);         extract($ctag>CAttribute>Items, EXTR_SKIP);         $revalue = '';         if(empty($tablewidth)) $tablewidth = 100;         if(empty($col)) $col = 1;         $colWidth = ceil(100/$col);         $tablewidth = $tablewidth."%";         $colWidth = $colWidth."%";         $orwheres = '';         if($flag != '') {             $flags = explode(',', $flag);             for($i=0; isset($flags[$i]); $i++) $orwheres .= " AND FIND_IN_SET('{$flags[$i]}', arc.flag)>0 ";         }         $ids = array();         $tids = array();         if(!empty($refObj>Fields['tags'])) {             $keyword = $refObj>Fields['tags'];         } else {             $keyword = (!empty($refObj>Fields['keywords']) ? $refObj>Fields['keywords'] : '');         }         $typeid = (!empty($typeid) ? $typeid : 0);         if(empty($typeid)) {             if(!empty($refObj>Typelink>TypeInfos['reid'])) {                 $typeid = $refObj>Typelink>TypeInfos['reid'];             } else {                 if(!empty($refObj>Fields['typeid'])) $typeid = $refObj>Fields['typeid'];             }         }         if(!empty($typeid) && !preg_match('/,/', $typeid)) {             $typeid = GetSonIds($typeid);         }         if(!empty($refObj>Fields['tags']) && $eregtype != 'keyword') {             $tags = explode(',', addslashes($refObj>Fields['tags']));             $getsql = " tag like '".join("' OR tag like '", $tags)."' ";             $dsql>Execute('me', "Select * From#@__tagindex where $getsql ");             while($arow = $dsql>GetArray('me')) {                 $tids[] = $arow['id'];             }             $tid = join(',', $tids);             if($tid!='') {                 $dsql>Execute("me", "Select aid From#@__taglist where tid in($tid) And arcrank > 1 group by aid order by aid desc");                 while($arow = $dsql>GetArray("me")) {                     $ids[] = $arow['aid'];                     $arcid = $refObj>Fields['aid'];                 }             }          }         // 获得附加表的相关信息         $addField = "";         $addJoin = "";         if(is_object($refObj>ChannelUnit)) {             $addtable = $refObj>ChannelUnit>ChannelInfos['addtable'];             if($addtable != "") {                 $addJoin = " LEFT JOIN $addtable ON arc.id = ".$addtable.".aid ";                 $addField = "";                 $fields = explode(",",$refObj>ChannelUnit>ChannelInfos['listfields']);                 foreach($fields as $k=>$v) {                     $nfields[$v] = $k;                 }                 foreach($refObj>ChannelUnit>ChannelFields as $k=>$arr) {                     if(isset($nfields[$k])) {                         if(!empty($arr['rename'])) {                             $addField .= ",".$addtable.".".$k." as ".$arr['rename'];                         } else {                             $addField .= ",".$addtable.".".$k;                         }                     }                 }             }         }         if(count($ids) == 0) return; // 如果没找到相关文章,则返回空值。         // 输出结果列表...     } } ?>

调用一篇文章的全部内容可以使用以下SQL语句:

 {dede:sql sql="Select body Fromdede_mubanaddonarticle where aid='5'"} [field:body/] {/dede:sql}

调用一篇文章的前1000个字:

 {dede:sql sql="Select left(body,1000) Fromdede_mubanaddonarticle where aid='5'"}[field:body/]{/dede:sql}

常见问题解答FAQs

1、Q1: 如何在织梦CMS中调用相关文章?

A1: 可以使用dede:likearticle标签或自定义类库文件liketags.lib.php来实现精准调用相关文章,具体方法可以参考上述代码示例。

dede:likearticle标签:适用于简单场景。

自定义类库文件:适用于需要更多自定义字段和复杂逻辑的场景。

注意事项:确保系统缓存已更新,否则更改可能不会立即生效,如果遇到问题,检查相关配置和权限。


Dedecms织梦Tag Keyword调用相关文章

1.

Dedecms织梦是一款功能强大的内容管理系统(CMS),它支持通过Tag Keyword(标签关键词)来调用相关文章,这种方式可以方便地实现文章的分类聚合和推荐,提升用户体验。

2. 标签关键词调用原理

Tag Keyword:在Dedecms中,每个文章可以关联多个标签关键词,这些标签关键词用于描述文章的主题和内容。

调用相关文章:通过在模板中插入特定的标签关键词调用代码,系统会自动查找与该关键词相关的文章,并显示在指定位置。

3. 调用相关文章的方法

3.1 使用标签关键词调用模块

1、登录Dedecms后台,进入“模块管理”。

2、找到“Tag关键词调用”模块,点击“添加模块”。

3、在“调用类型”中选择“相关文章”,设置相关参数(如显示数量、排序方式等)。

4、保存模块,然后在文章模板中调用该模块即可。

3.2 使用自定义调用代码

1、在模板文件中找到需要调用相关文章的位置。

2、使用以下代码进行调用:

 {dede:tag keyword='关键词'} {dede:arclist tagid='关键词ID' row='5' titlelen='30'} <a href="[field:arcurl/]">[field:title/]</a> {/dede:arclist} {/dede:tag}

关键词:需要调用相关文章的标签关键词。

关键词ID:该标签关键词的ID,可以在标签关键词管理中查看。

row:调用文章的数量。

titlelen的长度。

4. 注意事项

确保标签关键词的设置准确,以便正确调用相关文章。

调用相关文章时,注意文章的排序方式和显示数量,以提高用户体验。

避免过度调用相关文章,以免影响网站的整体布局。

5. 归纳

通过Dedecms织梦的Tag Keyword调用相关文章功能,可以有效地提升网站的内容展示效果,为用户提供更加丰富的阅读体验,正确使用该功能,有助于提高网站的用户留存率和转化率。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!