返回顶部
首页 > 资讯 > CMS >dedecms如何在列表页调用body内容字段的方法示例
  • 715
分享到

dedecms如何在列表页调用body内容字段的方法示例

dedecms列表页调用body内容字段 2022-06-12 02:06:26 715人浏览 独家记忆
摘要

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

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

比如下列代码:


{dede:list pagesize='10'}
 
[field:title/]
 
[field:description/]...
 
作者:[field:writer/]
 
发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
 
{/dede:list}

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

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

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

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


//获取单篇文档body
function GetOneArcHiveBody($aid,$length)
{
global $dsql;
$aid = trim(ereg_replace('[^0-9]','',$aid));
$body = '';
$query = " Select art.body From `dede_addonarticle` art, `dede_archives` arc where art.aid='$aid' and art.aid=arc.id ";
$arcRow = $dsql->GetOne($query);
if(!is_array($arcRow)) {
return $body;
}
 
if(isset($arcRow['body'])) {
 
$body = cn_substr(html2text($arcRow['body']),$length);
 
}
 
return $body;
 
}

在前台模板调用:


{dede:list pagesize='10'}
 
[field:title/]
 
[field:id function="GetOneArchiveBody(@me,200)"/]...
 
作者:[field:writer/]
 
发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
 
{/dede:list}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: dedecms如何在列表页调用body内容字段的方法示例

本文链接: https://lsjlt.com/news/32789.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作