找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2821|回复: 0

[分享] dedecms如何在列表页调用body内容字段

[复制链接]
发表于 2018-9-30 08:11:43 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
我们都知道description的优化和seo也是息息相关的,对于seo新手来说往往没有这一方面的经验,不写description可能效果更好,但是不写description会出现一个问题,那就是无法在文章列表页调出文章的简介。

比如下列代码:
  1. {dede:list pagesize='10'}
  2. [field:title/]
  3. [field:description/]...
  4. 作者:[field:writer/]
  5. 发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
  6. {/dede:list}
复制代码


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

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

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

打开include文件下extend.func.php添加以下代码:
  1. //获取单篇文档body
  2. function GetOneArchiveBody($aid,$length)
  3. {
  4. global $dsql;
  5. $aid = trim(ereg_replace('[^0-9]','',$aid));
  6. $body = '';
  7. $query = " Select art.body From `dede_addonarticle` art, `dede_archives` arc where art.aid='$aid' and art.aid=arc.id ";
  8. $arcRow = $dsql->GetOne($query);
  9. if(!is_array($arcRow)) {
  10. return $body;
  11. }
  12. if(isset($arcRow['body'])) {
  13. $body = cn_substr(html2text($arcRow['body']),$length);
  14. }
  15. return $body;
  16. }
复制代码

在前台模板调用:
  1. {dede:list pagesize='10'}
  2. [field:title/]
  3. [field:id function="GetOneArchiveBody(@me,200)"/]...
  4. 作者:[field:writer/]
  5. 发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
  6. {/dede:list}
复制代码


发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-22 22:25 , Processed in 0.044532 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表