织梦cms图片路径标签

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

核心标签:{dede:field name='pic'}

这是获取图片路径最核心、最常用的标签,它的工作原理是:读取当前文档(文章或栏目)的“图片摘要”字段。

织梦cms图片路径标签
(图片来源网络,侵删)

页 (article_article.htm) 中使用

页,{dede:field name='pic'} 会直接获取这篇文章在后台设置的“图片摘要”的完整路径。

示例代码:

<img src="{dede:field name='pic'/}" alt="{dede:field.title/}" />

说明:

  • 如何设置: 在后台编辑文章时,找到“高级选项” -> “图片摘要”,上传或填写一张图片的URL。
  • 路径类型: 如果你的网站开启了“绝对路径”选项(在系统 -> 核心设置中),那么调用出来的就是完整的 http://... 路径,如果未开启,则是相对于网站根目录的路径,如 /uploads/allimg/...

首页/列表页调用文章第一张图

这是最常见的需求之一:在首页、列表页或文章栏目页,调用文章内容中的第一张图片作为缩略图。

织梦cms图片路径标签
(图片来源网络,侵删)

织梦CMS本身没有直接调用文章第一张图的标签,但可以通过自定义函数或使用现成的标签来实现,这里推荐两种最主流的方法。

使用 {dede:field.body/} + 正则表达式(推荐)

这是最灵活、最常用的方法,通过一个自定义函数 GetFirstImg() 来实现。

第一步:在 include/extend.func.php 文件中添加函数

打开你的网站根目录下的 include/extend.func.php 文件(如果这个文件不存在,就新建一个),在文件末尾添加以下PHP代码:

织梦cms图片路径标签
(图片来源网络,侵删)
/**
 * 获取文档body中的第一张图片路径
 * @param string $body 文章内容
 * @return string 第一张图片的路径,如果没有则返回默认图
 */
function GetFirstImg($body)
{
    $preg = "/<img.*?src=[\'|\"](.*?)[\'|\"].*?[\/]?>/i";
    preg_match_all($preg, $body, $match);
    if (!empty($match[1][0])) {
        // 如果开启了绝对路径,这里需要确保返回的是绝对路径
        // 如果你的网站配置了将相对路径转为绝对路径,可以直接返回
        return $match[1][0];
    } else {
        // 如果没有图片,可以返回一个默认图片路径
        return '/default.jpg'; // 请将 /default.jpg 替换为你的实际默认图片路径
    }
}

第二步:在模板中使用 {dede:field name='body' function='GetFirstImg(@me)'/}

你可以在首页、列表页等模板文件中,通过以下方式调用文章的第一张图。

示例代码(在首页列表循环中 arclistlist 标签内):

{dede:arclist typeid='' row='8' titlelen='30'}
    <li>
        <!-- 调用第一张图 -->
        <img src="{dede:field name='body' function='GetFirstImg(@me)'/}" alt="{dede:field.title/}" />
        <!-- 调用文章标题 -->
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
{/dede:arclist}

代码解释:

  • {dede:field name='body'}:获取文章的完整内容。
  • function='GetFirstImg(@me)':这是一个函数修饰符。
    • @me:代表 {dede:field name='body'} 当前标签的值,也就是文章内容。
    • GetFirstImg(...):将文章内容作为参数,传递给我们刚刚在 extend.func.php 中定义的函数。
    • 函数会处理内容并返回第一张图片的路径,最终替换掉整个标签。

使用第三方标签(如 likearticle

有些织梦二次开发模板会提供自定义标签,likearticle,它可以方便地调用文章相关信息,包括第一张图,这种方法需要你的模板或插件支持,不是所有模板都通用。

示例代码(仅为示意,具体看模板文档):

{dede:likearticle row='5'}
    <img src="[field:pic/]" alt="[field:title/]" />
{/dede:likearticle}

这种方式更简单,但通用性较差,需要根据你使用的具体模板或插件来调整。


调用栏目缩略图

如果你想在模板中调用当前栏目的缩略图,可以使用 typeid 属性来指定栏目ID,然后调用其缩略图。

示例代码:

{dede:arclist typeid='栏目ID' row='1'}
    <!-- 调用栏目的缩略图,而不是文章的 -->
    <img src="{dede:global.cfg_cmspath/}/uploads/{dede:type typeid='栏目ID'}[field:litpic/]{/dede:type}" alt="{dede:field.title/}" />
{/dede:arclist}

或者更简洁的方式(在栏目页直接调用):

{dede:field name='litpic'/}

这个标签在栏目模板(如 category_栏目ID.htm)中,可以直接获取当前栏目的缩略图。


织梦CMS的图片路径配置(重要!)

理解织梦如何处理路径,能帮你解决很多路径问题。

  1. 后台设置:

    • 进入 后台 -> 系统 -> 系统基本参数 -> 核心设置
    • 找到 “是否使用绝对路径” 选项。
      • “是”:所有图片、链接都会生成完整的 http://www.yoursite.com/... 格式,适合移动端、小程序或被其他网站引用。
      • “否”:生成相对路径,如 /uploads/allimg/...,适合传统的PC网站。
  2. 图片上传目录:

    • 上传的图片默认存放在 /uploads/ 目录下,这个目录可以在后台设置中修改。
    • 路径格式通常为:/uploads/年/月/日//uploads/20251027/202510271234567.jpg

总结与最佳实践

场景 推荐标签/方法 说明
{dede:field name='pic'/} 调用后台“图片摘要”字段。
首页/列表页调用文章第一张图 {dede:field name='body' function='GetFirstImg(@me)'/} 最推荐,通过自定义函数实现,灵活且通用。
调用栏目缩略图 {dede:field name='litpic'/} 在栏目页或指定栏目时使用。
图片路径问题 检查后台“是否使用绝对路径”设置。 确保你需要的路径类型(绝对/相对)已正确配置。

给新手的建议:

  1. 优先使用方法一extend.func.php + GetFirstImg 函数),这是最标准、最灵活的解决方案。
  2. 在修改模板前,务必备份原始模板文件。
  3. 如果图片路径不正确,首先去后台检查 “是否使用绝对路径” 这个核心设置。
-- 展开阅读全文 --
头像
织梦CMS模板修改如何操作?
« 上一篇 02-08
织梦模板后台头部log
下一篇 » 02-08

相关文章

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

目录[+]