• 1107阅读
  • 1回复

dedecms首页或列表调取文章内容body的三个方法

楼层直达
有时需要在网站首页或栏目封面上显示几篇文章的内页作为导语或其他什么的,但acrlist标签是不能直接调取body的,这时我们就需要使用以下方法来调取body。 NO4V{}?a  
方法一:arcticle 标签 加上channeleid o C]tEXJ  
:kycIM]s  
sPCp20x:y8  
{dede:arclist' addfields='body' channelid='1'} &"dT/5}6  
[field:body/] {~g(WxE  
{/dede:arclist} I*e8 5wef  
addfields='body' 表示附加表中的body字段。 2[&3$-]  
#C?T  
|irqv< r  
channelid='1' 表示的是频道模型id p*10u@,  
T`g.K6$b  
M.K-)r,  
方法二 使用万能的sql标签, W1X\!Y  
![WX -"lW  
OL]^4m  
{dede:sql sql="select body from dede_addonarticle where id=?"} tE0DST/  
N9r}nqCN  
P&3'N~k-  
[field:body/] &6A'}9Ch  
H{'<v|I  
G#/}_P  
{/dede:sql} =whZ?,u1   
使用万能的sql标签, ._m+@Uy]H}  
xwa5dtcng  
n(.y_NEgV!  
方法三:使用loop标签调用 table 表示附加表 if 表示添加 #q1Qa_LXc  
gB@Xi*  
m xtLcG4G  
{dede:loop table='dede_addonarticle' sort='' row='1' if=''} jC1mui|Y^  
[field:body/] cZKK\hf<  
{/dede:loop} h5WS<P  
这三种方法都可以实现,还有一个小问题就是直接调取body的话,html标记也跟着出来了,如果需要去掉html标记只获取其中的文字,我们使用以下字段写法。 N+x0"~T}I  
kH1hsDe|&y  
yiGq?WA7  
[field:body function='cn_substr(@me,400)'/] 24"Trg\WK[  
其中400指的的截取字符串的长度,可自由修改。
只看该作者 安逸沙发  发表于: 2018-10-22
关于首页、列表页调用文章body内容的两种方法,具体方法如下: kf, &t   
e4z`:%vy  
第一种方法: -F5B Jk  
{}O~tf_  
1 #Hw|P  
{dede:arclist row='1' typeid='1' addfields='body' idlist='1' channelid='1'} Gm~([Ln{  
2 t{md&k4  
[field:body function='cn_substr(html2text(@me),100)'/] (3Db}Hnn  
3 K~W(ZmB  
{/dede:arclist} eqx }]#  
56V|=MzX]  
解析: _CwTe=K}  
I)HO/i 6>3  
1、addrields=”字段1,字段2…” !eX0Q 2  
8$(I! ;  
2、idlist=”文章ID”(可不写) D|uvgu2  
6VW *8~~Xy  
3、channelid=”模型ID”,普通文章默认为1(查看方法:核心–频道模型–内容模型管理–id号) MAh1tYs4D  
f{BF%;  
4、function=’cn_substr(html2text(@me),100)’ 过滤文章样式,并限制100字符 u`MM K4 %  
l\<.*6r  
列表页用dede:list标签调用 Tzq@ic#!B  
t G_4>-Y#w  
首先进入后台–>核心–>频道模型–>内容模型管理–>普通文章(选择你的模型)–>更改–>基本设置–>列表附加字段–>里边是否有值:body `v*HH}aDO  
J%"BCbxW~B  
如果没有添加body进去,如果有则使用如下代码即可: <-VBb[M#  
`/O`%6,f1!  
1 S<Dbv?  
{dede:list pagesize='10' addfields='body'} ee {ToK  
2 t3<MoDe7`r  
[field:body function='cn_substr(html2text(@me),100)'/] !M^O\C)  
3 <)7aNW.  
{/dede:list} C4+DZ<pE  
Xf u0d1b  
第二种方法: \<{a=@_k9  
1 Ht[$s40P  
{dede:sql sql="SELECT body FROM `dede_addonarticle` where aid = 1"} ~[;r) g\  
2 hRf l\Q[  
[field:body function='cn_substr(html2text(@me),100)'/] DU^.5f  
3 9nFL70  
{/dede:sql} u)@:V)z  
uu6 JZp  
解析: 0'o[ 2,  
Tg{5%~L]   
本示例使用sql语句从dede_addonarticle表调取body内容。 %o?)`z9-  
Oiib2Ov  
1、将表前缀dede_修改为你数据库的表前缀 N@d~gE&^  
>7W)iwF  
2、修改aid=1中的数字1为你要调取内容的文章ID
快速回复

限100 字节
安逸网提示:如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个