当前位置:首页 > 行业动态 > 正文

如何在DedeCMS中调用相关文章并修改关键词关联?

在DedeCMS中,使用 dede:likearticle标签调用相关文章,并通过修改关键词实现关连文章。

在DedeCMS中,通过dede:likearticle标签可以调用相关文章,这个标签从5.5版本开始替换了原来的likeart标签,下面是使用dede:likearticle标签的示例代码:

{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}

参数说明:

1、col:分多少列显示(默认为单列)。

2、row:返回文档列表总数(默认为10)。

3、titlelen长度(等同于titlelength,默认为30)。

4、infolen简介长度(等同于infolength,默认为160)。

5、mytypeid:手工指定要限定的栏目id,用逗号分开表示多个。

6、innertext:单条记录样式(指标签中间的内容)。

修改关键词关连文章

要在DedeCMS中通过关键词调取相关文章,可以通过以下方法实现:

1、编辑文件include/taglib/arclist.lib.php

找到以下内容:

   //关键字条件 if($keyword!='') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) REGEXP '$keyword' "; }

替换为:

   if($keyword!='') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) LIKE '%$keyword%' "; }

2、在模板中使用如下代码

   {dede:field name='ID' runphp='yes'}  
       $tempid=@me;  
       @me="";  
   {/dede:field}  
   {dede:field name='keywords' runphp='yes'}  
       @me="%".str_replace(" ", "%", @me). "%";  
   if (!isset($dsql) || !is_object($dsql)) {  
       $dsql = new DedeSql(false);  
   }  
   $dsql>SetQuery("SELECT arcf.title, arcf.url FROMdede_full_search arcf LEFT JOINdede_arctype tp ON arcf.typeid=tp.ID WHERE arcf.arcrank > 1 AND arcf.keywords LIKE '".@me."' AND aid <> ".$tempid." ORDER BY arcf.aid DESC LIMIT 0, 20");  
   $dsql>Execute();  
   @me="";  
   while ($row = $dsql>GetArray()) {  
       @me .= "<li><a href='".$row['url']. "' target='_blank'>".$row['title']. "</a></li>";  
   }  
   {/dede:field}

FAQs

1、如何在文章内容页调用相关文章?

:在文章内容页调用相关文章时,可以使用如下代码:

     {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}

2、如何修改关键词以调用相关文章?

:可以通过编辑文件include/taglib/arclist.lib.php,将以下代码:

     //关键字条件 if($keyword!='') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) REGEXP '$keyword' "; }

替换为:

     if($keyword!='') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) LIKE '%$keyword%' "; }

然后在模板中使用相应代码来调用相关文章。

参数 说明 示例代码
dede:likearticle 调用相关文章,显示与当前文章相似的文章 {dede:likearticle row="10" titlelen="50" infolen="50"}
  • [field:title/]
  • {/dede:likearticle}

    row 设置显示文章数量 row="10"
    titlelen 设置标题显示长度 titlelen="50"
    infolen 设置简介显示长度 infolen="50"
    field:arcurl/ 获取文章URL [field:arcurl/]
    field:title/ 获取文章标题 [field:title/]

    修改关键词关连文章

    参数 说明 示例代码
    dede:relatedarticle 调用关键词关连文章,显示与当前文章相关关键词的文章 {dede:relatedarticle titlelen="50" infolen="50"}
  • [field:title/]
  • {/dede:relatedarticle}

    titlelen 设置标题显示长度 titlelen="50"
    infolen 设置简介显示长度 infolen="50"
    field:arcurl/ 获取文章URL [field:arcurl/]
    field:title/ 获取文章标题 [field:title/]

    通过以上代码,你可以在dedecms文章页面上调用相关文章和关键词关连文章。

    0