织梦首页如何调用内容图片?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 织梦建站 正文

调用文章列表中的缩略图(最常用)

这是最基础也是使用最多的场景,比如在首页新闻板块、产品板块调用带图片的文章列表。

织梦首页调用内容图片
(图片来源网络,侵删)

准备工作:确保文章有缩略图

在发布文章时,务必填写 “缩略图” 字段,这个字段通常位于文章编辑页面的右侧栏,如果不填,调用出来的图片地址会是空的或者默认的。

核心调用代码

织梦提供了强大的标签 {dede:arclist} 来调用文章列表,调用缩略图主要使用 litpic 这个字段。

基本代码示例:

{dede:arclist row='10' titlelen='30' typeid='1' imgwidth='120' imgheight='90'}
    <a href="[field:arcurl/]" title="[field:title/]">
        <img src="[field:litpic/]" alt="[field:title/]" width="120" height="90">
    </a>
    <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
    <p>[field:description function='cn_substr(@me,100)'/]...</p>
{/dede:arclist}

代码参数详解

  • {dede:arclist ...}: 调用文章列表的开始标签。
    • row='10': 调用10条文章。
    • titlelen='30': 标题长度,最多显示30个字符。
    • typeid='1': 指定栏目ID,只调用这个ID下的文章,如果想调用多个栏目,用逗号隔开,如 typeid='1,2,3',留空或写 typeid='0' 表示调用所有栏目。
    • imgwidth='120': 设置缩略图的显示宽度
    • imgheight='90': 设置缩略图的显示高度
    • innertext='': 循环体内的模板代码,默认就是下面这些。
  • [field:litpic/]: 核心字段,代表文章的缩略图地址。
  • [field:arcurl/]: 文章的完整链接地址。
  • [field:title/]: 文章的标题。
  • [field:description function='cn_substr(@me,100)'/]: 文章的摘要,并用 cn_substr 函数截取前100个字符。

调用栏目列表中的栏目图片

如果你想在首页展示各个栏目,并带上每个栏目的代表图片,可以使用 {dede:channel}

核心调用代码

{dede:channel type='top' row='8'}
    <a href="[field:typelink/]">
        <img src="[field:icon/]" alt="[field:typename/]">
        <span>[field:typename/]</span>
    </a>
{/dede:channel}

代码参数详解

  • {dede:channel ...}: 调用栏目的开始标签。
    • type='top': 只调用顶级栏目,如果你想调用所有栏目(包括子栏目),可以去掉这个参数或设为 type='son'(指定栏目的子栏目)。
    • row='8': 调用8个栏目。
  • [field:icon/]: 核心字段,代表栏目的栏目图标(也就是你说的栏目图片),这个图片是在“栏目管理” -> “选择栏目” -> “修改”时上传的“栏目图片”。
  • [field:typelink/]: 栏目的链接地址。
  • [field:typename/]: 栏目的名称。

调用指定文章的单张图片(用于首页Banner等)

有时候首页只需要调用某一篇特定的文章(比如置顶的Banner文章)的图片作为轮播图或大图展示,这时可以使用 {dede:sql}{dede:arclist} 结合 idlist 参数。

织梦首页调用内容图片
(图片来源网络,侵删)

方法A:使用 idlist 参数(推荐,更安全)

这种方法通过指定文章的ID来调用,非常精确。

核心调用代码:

{dede:arclist idlist='10' row='1'}
    <a href="[field:arcurl/]" title="[field:title/]">
        <img src="[field:litpic/]" alt="[field:title/]">
    </a>
{/dede:arclist}
  • idlist='10': 这是关键参数,表示只调用文章ID为10的这篇文章。row='1' 确保只调用一条。
  • 你可以在后台“内容管理” -> “所有文档”中,找到你想要的文章,查看其ID。

方法B:使用 dede:sql 标签(更灵活)

如果你知道文章的标题或其他条件,可以直接用SQL语句查询,非常灵活。

核心调用代码:

织梦首页调用内容图片
(图片来源网络,侵删)
{dede:sql sql="SELECT litpic,arcurl,title FROM dede_archives WHERE title='首页Banner图' LIMIT 1"}
    <a href="[field:arcurl/]" title="[field:title/]">
        <img src="[field:litpic/]" alt="[field:title/]">
    </a>
{/dede:sql}
  • sql="...": 这里写你的SQL查询语句。
    • dede_archives 是织梦存放文章信息的核心表。
    • WHERE title='首页Banner图' 是查询条件,表示查找标题为“首页Banner图”的文章。
    • LIMIT 1 限制只返回一条结果。
  • [field:litpic/] 等字段在这里同样适用。

调用文章内容中的第一张图片

文章本身没有上传缩略图,但我们希望自动提取文章内容(body字段)中的第一张图片作为封面图,这需要自定义一个函数。

/include/extend.func.php 中添加函数

用FTP或文件管理器打开 /include/extend.func.php 文件,在文件末尾的 ?> 之前,添加以下PHP代码:

/**
 * 获取文档body中的第一张图片路径
 * @param string $body 文档内容
 * @return string
 */
function GetFirstImg($body)
{
    if (empty($body)) return '';
    $preg = "/<img.*?src=[\\'\\\"](.*?)[\\'\\\"].*?[\\/]?>/i";
    preg_match_all($preg, $body, $match);
    if (!isset($match[1][0]) || empty($match[1][0])) {
        // 如果没有找到图片,可以返回一个默认图片
        return '/images/default.jpg'; 
    }
    return $match[1][0];
}

在模板中调用

添加完函数后,就可以在模板里使用了。

核心调用代码:

{dede:arclist row='5' typeid='1'}
    <a href="[field:arcurl/]" title="[field:title/]">
        <!-- 调用我们刚刚自定义的函数 -->
        <img src="[field:body function='GetFirstImg(@me)'/]" alt="[field:title/]">
    </a>
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
{/dede:arclist}
  • [field:body function='GetFirstImg(@me)'/]: 这是最关键的写法。
    • field:body 获取文章的完整内容。
    • function='GetFirstImg(@me)' 将获取到的内容(@me)作为参数,传递给我们刚刚在 extend.func.php 中定义的 GetFirstImg 函数。

总结与最佳实践

调用场景 推荐标签 核心字段/参数 备注
文章列表缩略图 {dede:arclist} [field:litpic/] 最常用,确保文章已上传缩略图。
栏目列表图片 {dede:channel} [field:icon/] 调用的是在“栏目管理”中上传的“栏目图片”。
调用指定单图 {dede:arclist} idlist='文章ID' 精确调用某一篇文章的图片,适合Banner等。
首图 {dede:arclist} + 自定义函数 function='GetFirstImg(@me)' 需要修改 extend.func.php,非常灵活。

重要提示:

  1. 图片路径问题:如果调用出的图片无法显示,请检查 [field:litpic/][field:icon/] 输出的路径是否正确,织梦默认是相对路径,如果你的网站根目录不是 ,可能需要调整。
  2. 后台设置:确保在“系统” -> “系统基本参数” -> “核心设置”中,是否开启了“远程站点文件下载”等功能,这有时会影响图片的调用。
  3. 缓存问题:修改模板后,如果首页没有立即更新,可以尝试在后台“生成” -> “更新主页HTML”来刷新缓存。

希望这些方法能帮助你完美解决织梦首页调用图片的问题!

-- 展开阅读全文 --
头像
c语言设计职工信息管理系统
« 上一篇 03-20
织梦如何调用指定ID的文章?
下一篇 » 03-20

相关文章

取消
微信二维码
支付宝二维码