明凯博客

关注网站技术,一个特立独行的程序员

dedecms列表页调用文章正文内容的方法

在制作织梦模板的时候,有的时候我们需要调用文章部分内容,用[field:description/]标签字数不够多(数据库设计字段是varchar(255)的),
另外修改了文章内容但是摘要还需要手动修改,所以只能调用文章正文内容了。
实现织梦DedeCMS列表页调用文章正文的方法有两种,不过都是使用的dede:arclist标签

第一种方法:

如果使用dede:list标签的话,是调用不出结果的。
代码如下:

1
2
3
4
5
{dede:arclist flag='h' row='10′} 
<h1><a href='[field:arcurl/]'>[field:title/]</a></h1> 
<p>[field:id runphp='yes'] $aid = @me; $row = $GLOBALS['dsql']->GetOne("Select body From 'dede_addonarticle' where aid='$aid' "); @me = 
cn_substr(strip_tags("{$row['body']}")400);[/field:id]<a href='[field:arcurl/]'>【阅读详细】</a></p>
{/dede:arclist}

代码中的数字400是用来设置需要调用多少内容的,因为调用的是body里面的内容,如果有里面包含代码的话也会被调用出来,这点比较不好,不过可以使用html2tex()函数解决一下。

第二种方法

则是利用了织梦可以自定义模型内容数据,并调用的原理,把文章模板的body字段看做在自定义的,调用的代码如下:

1
2
3
4
5
6
7
{dede:arclist row='10' addfields='body' channelid='1'} 
<p> [field:body function='cn_substr(html2text(@me),600)'/]...</p> 
<span class="more"> 
<a href=" [field:arcurl/]" style="text-decoration:none; color:#990000;"& gt; [详 情] 
</a> 
</a></span> 
{/dede:arclist}

以下是这种方法的详细说明:

1.addrields=”字段一,字段二…”
2.idlist:文章编号,调用指定内容
3.function=”cn_substr(html2text(@me),600)” 将文章内容转化为文字格式
4.channelid,模型编号,文章默认为1,查看位置:后台–核心–内容模型管理

两种方法各有优劣,第一种方法比较繁琐,不是那么容易看懂,还是比较推荐采用第二种方法实现织梦DedeCMS列表页调用文章正文的功能的。

dede:list 标签也能调用body内容:

第一步,打开后台 核心–>频道模型–>内容模型管理–>普通文章,在列表附加字段中添加body。
第二步,在dede:list语句中指定addfields=’body’,然后直接用[field:body/]调用全部内容。

, ,

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注