原文来自:https://www.zixuephp.com
dedecms列表调用文章正文内容方法
在列表页面要获取文章内容简单描述的话我们可以直接使用description标签就可以了,但是如果要有很多估计我们需要进行一些简单的修改。
在制作织梦模板的时候,有的时候我们需要调用文章部分内容,用[field:description/]标签字数不够多(数据库设计字段是varchar(255)的),另外修改了文章内容但是摘要还需要手动修改,所以只能调用文章正文内容了.
实现织梦DedeCMS列表页调用文章正文的方法有两种,不过都是使用的dede:arclist标签,如果使用dede:list标签的话,第一种方法是调用不出结果的.
以下是织梦DedeCMS列表页调用文章正文的第一种方法,代码如下:
- {dede:arclistflag='h'row='10′}
- <h1><ahref='[field:arcurl/]'>[field:title/]</a></h1>
- <p>[field:idrunphp='yes']$aid=@me;$row=$GLOBALS['dsql']->GetOne("SelectbodyFrom'dede_addonarticle'whereaid='$aid'");@me=
- cn_substr(strip_tags("{$row['body']}"),400);[/field:id]<ahref='[field:arcurl/]'>【阅读详细】</a></p>{/dede:arclist}
代码中的数字400是用来设置需要调用多少内容的,因为调用的是body里面的内容,如果有里面包含代码的话也会被调用出来,这点比较不好,不过可以使用html2tex()函数解决一下.
第二种方法则是利用了织梦可以自定义模型内容数据,并调用的原理,把文章模板的body字段看做在自定义的,调用的代码如下:
- {dede:arclistrow='10'addfields='body'channelid='1'}
- <p>[field:bodyfunction='cn_substr(html2text(@me),600)'/]…</p>
- <spanclass="more">
- <ahref="[field:arcurl/]"style="text-decoration:none;color:#990000;">[详情]
- </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/]调用全部内容.
实例代码如下:
- {dede:listpagesize='18'addfields='body'}
- <li>
- <p>[field:body/]</p>
- <p><ahref="[field:arcurl/]"title="[field:title/]">[field:title/]</a></p>
- </li>
- {/dede:list}
另外,如果像摘要一样调用可以用,代码如下:
- [field:bodyfunction='cn_substr(html2text(@me),200)'/]替代:[field:description/],
调出文章前200个字符内容,经过这两步,可以彻底关掉系统默认的文章摘要功能,最后还有就是官方的一个[field:description/]字段了,这个如果对于要求几十个字的完全可以了,但是如果太多字此字段就无效了.