找传奇、传世资源到传世资源站!

dedecms织梦教程如何在列表页调用body内容字段

2021.5.16 技术教程 1151 编辑

我们都知道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}

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复