DEDE 调用文章图片

来源:互联网 发布:汤姆索亚历险记 知乎 编辑:程序博客网 时间:2024/05/01 15:10

我们可以精准的调用图片,如首页Flash可以直接调用文章页的原图,不再使用会变形的缩略图。

修改方法:

打开include/extend.func.php

最后边添加这段代码:

//取第一张图地址
function firstimg($str_pic)
{
$str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg
return $str_sub;
}
 
保存就改好了。

使用方法:

如果是直接使用,标签:{dede:field name='litpic' function="firstimg(@me)"/}

模板中其他标签内循环使用,标签:[field:litpic function=firstimg('@me')/]

 

 

或:

1:有的幻灯片有大小图,一般来说那大图比小的要大很多,例如我仿制的163k的文章幻灯片就是如此,我看很多人都放弃了这个幻灯,因为显示大图的地方调用缩略图的话就会图片失真...

2:用来实现有些博客风格一个功能:在列表页面每个日志的标题下显示一张图片(不是dede的缩略图哦)

方法:

由于标签arclist不支持body,所以arclist调用的地方改为sql标签 独立模型列表和list支持底层模板调用body ,所以可以直接使用

{dede:sql sql='select * from dede_archives left join dede_addonarticle on dede_archives.id=dede_addonarticle.aid where find_in_set("f",dede_archives.flag)&gt;0 order by dede_archives.id desc limit 0,5'}   <div>[field:body function=firstimg('@me')/]</div>   {/dede:sql}  注意:实现的办法是自定义一个函数

函数代码

Copy codefunction firstimg($str)   {   $str1 = str_replace('"','',$str);   preg_match('/&lt;img[^>]*>/i',$str1,$str2);   $str3 = array_shift($str2);   $str4 = str_replace(' alt= ',' ',$str3);   return $str4;   }  将以上代码加入到include下的channelunit.func.php中,

底层模板字段调用的时候

[field:body function=firstimg('@me')/]

标签调用

{field:body function=firstimg('@me')/}

不过这个函数有它的局限性,文章中的图片一定要出现在文章的开头才能达到效果,否则会失败

原创粉丝点击