php,{dede:likearticle row='8' typeid='@me'},[field:title/],{/dede:likearticle},
``,,这段代码会在当前文章下方显示8篇相关文章。如何在DedeCMS中调用相关文章
在DedeCMS(织梦内容管理系统)中,调用相关文章是一个常见的需求,特别是在内容页的末尾或侧边栏添加相关文章可以增加用户的黏度,提高页面浏览量(PV),并提升搜索引擎对网站的好感,以下是几种常用的方法来实现这一功能:
方法一:使用默认的likearticle标签
这是最基础的方法,通过DedeCMS自带的{dede:likearticle}
标签实现相关文章的调用,具体代码如下:
{dede:likearticle row='6' titlelen='40'} <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li> {/dede:likearticle}
参数说明:
row
:返回文档列表总数,默认为10。
titlelen
长度,等同于titlelength
。
方法二:通过关键词调用相关文章
这种方法可以通过编辑模板文件,利用关键词来调用相关文章,从而提供更精确的内容推荐,具体步骤如下:
1、找到并修改include/taglib/arclist.lib.php文件:
打开文件,找到以下内容:
```php
//关键字条件 if($keyword!='') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) REGEXP '$keyword' "; }
```
替换为:
```php
if($keyword != '') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) LIKE '%$keyword%' "; }
```
2、将相关代码添加到模板文件中:
```php
{dede:likearticle row=’8’ eregtype=‘all|tag|keyword’}
<li><span>[field:pubdate function="MyDate('Ymd',@me)"/]</span>·<a href="[field:arcurl/]" title="[field:fulltitle/]" target="_blank">[field:title/]</a></li>
{/dede:likearticle}
```
方法三:检索当前会员发布的相关文章
如果需要根据当前会员发布的相关文章进行调用,可以使用以下SQL语句:
{dede:sql sql="SELECT * FROM dede_archives WHERE writer=~writer~"} [field:id/], {/dede:sql}
说明:这里的~writer~
会根据当前内容的环境变量进行替换后再执行查询。
方法四:动态获取ID
通过动态获取文章ID来实现相关文章的调用:
{dede:sql sql='Select * from dede_archives where id=~id~'} <a href='[field:arcurl/]'>[field:title/]</a> {/dede:sql}
FAQs
问题1:如何调用全站相关文章?
答:要调用全站相关文章,可以使用如下代码:
{dede:likearticle row='10' titlelen='50'} <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li> {/dede:likearticle}
这里,row
参数控制返回的文章数量,titlelen
控制显示的标题长度。
问题2:如何排除当前文章?
答页调用本栏目或者指定栏目的相关文章,但不包括当前这篇文章,可以在模板中使用条件判断:
{dede:likearticle row='8' titlelen='50'} {if !([field:id/] == @me)} <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li> {/if} {/dede:likearticle}
这样,当前文章就不会出现在相关文章列表中。
在DedeCMS(织梦内容管理系统)中调用相关文章,可以通过以下几种方式实现:
1. 通过标签调用相关文章
DedeCMS提供了丰富的标签库,其中#dede:
标签可以用来调用相关文章,以下是一些常用的相关文章调用标签:
a.{dede:arclist typeid='1' titlelen='30' row='5'}
typeid='1'
:指定调用文章的栏目ID。
titlelen='30'
:设置文章标题显示的最大长度。
row='5'
:设置调用文章的数量。
b.{dede:arclist typeid='1' row='5' orderby='pubdate'}
orderby='pubdate'
:按文章发布日期排序。
2. 通过模型调用相关文章
如果文章属于某个模型,可以使用以下标签:
a.{dede:channelartlist typeid='1' titlelen='30' row='5'}
typeid='1'
:指定调用文章的栏目ID。
titlelen='30'
:设置文章标题显示的最大长度。
row='5'
:设置调用文章的数量。
3. 通过文章ID调用相关文章
如果知道相关文章的具体ID,可以使用以下标签:
a.{dede:arctype id='1'}
id='1'
:指定调用文章的ID。
4. 通过文章分类调用相关文章
如果需要通过文章分类调用相关文章,可以使用以下标签:
a.{dede:channelartlist typeid='1' titlelen='30' row='5'}
typeid='1'
:指定调用文章的分类ID。
5. 通过自定义SQL查询调用相关文章
如果需要更复杂的查询,可以通过自定义SQL语句来调用相关文章:
a.{dede:sql sql='SELECT * FROM dede_arctype WHERE typeid=1'}
sql='SELECTFROM dede_arctype WHERE typeid=1'
指定自定义的SQL查询语句。
使用示例
以下是一个简单的调用相关文章的示例:
{dede:arclist typeid='1' titlelen='30' row='5'} <div class="relatedarticle"> <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a> <p>[field:description function="cn_substr(@me,100)"/]</p> </div> {/dede:arclist}
在这个示例中,我们调用了ID为1的栏目下的5篇文章,并且只显示了文章标题和摘要。
代码需要在DedeCMS的模板文件中使用,并根据实际情况调整参数。