当前位置:首页 > CMS教程 > DeDecms > 列表

dedecms列表页调用body字段

发布:smiling 来源: PHP粉丝网  添加日期:2019-03-05 10:28:49 浏览: 评论:0 

我们都知道description的优化和seo也是息息相关的,对于seo新手来说往往没有这一方面的经验,不写description可能效果更好,但是不写description会出现一个问题,那就是无法在文章列表页调出文章的简介。

比如下列代码:

  1. {dede:list pagesize='10'
  2.  
  3. [field:title/] 
  4.  
  5. [field:description/]... 
  6.  
  7. 作者:[field:writer/] 
  8.  
  9. 发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/] 
  10.  
  11. {/dede:list} 

因为没写description这个时候文章简介就会显示空白,严重影响了页面的美观和功用性。

下面是我的一些解决方法。

我们可以用截取文章前100个字作为文章简介,这里要组合使用用两个函数cn_substr和html2text,对文章转义后截取。测试代码:[field:body function="cn_substr(html2text(@me),200)"/],结果发现还是不行,因为body和description不在同一张表里。所以只好从程序上入手了。

打开include文件下extend.func.php添加以下代码:

  1. //获取单篇文档body 
  2.  
  3. function GetOneArchiveBody($aid,$length
  4.  
  5.  
  6. global $dsql
  7.  
  8. $aid = trim(ereg_replace('[^0-9]','',$aid)); 
  9.  
  10. $body = ''
  11.  
  12. $query = " Select art.body From `#@__addonarticle` art, `#@__archives` arc where art.aid='$aid' and art.aid=arc.id "
  13.  
  14. $arcRow = $dsql->GetOne($query); 
  15.  
  16. if(!is_array($arcRow)) { 
  17.  
  18. return $body
  19.  
  20.  
  21. if(isset($arcRow['body'])) { 
  22.  
  23. $body = cn_substr(html2text($arcRow['body']),$length); 
  24. //phpfensi.com 
  25.  
  26. return $body
  27.  

在前台模板调用:

  1. {dede:list pagesize='10'
  2.  
  3. [field:title/] 
  4.  
  5. [field:id function="GetOneArchiveBody(@me,200)"/]... 
  6.  
  7. 作者:[field:writer/] 
  8.  
  9. 发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/] 
  10.  
  11. {/dede:list} 

Tags: dedecms body字段

分享到: