dede如何显示图片?

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 DEDE建站 正文

使用 DedeCMS 的模板标签

DedeCMS 的内容是通过模板标签来调用和显示的,图片的显示也不例外,主要依赖于 {dede:field}


在文章列表页(首页、列表页)显示文章的缩略图

这是最常见的需求,比如在首页的文章列表中,每条新闻旁边都有一张小图。

步骤 1:确保文章有缩略图

在后台发布或编辑文章时,一定要在“缩略图”这一项上传或填写图片地址。

步骤 2:修改列表页模板文件

找到你当前使用的模板目录下的列表页模板文件,通常是: /templets/default/list_artlist.htm (默认模板) 或者你自定义模板目录下的 list_xxx.htm

在需要显示图片的位置,插入以下代码:

<a href='[field:arcurl/]'>
    <img src='[field:litpic/]' alt='[field:title/]' width='120' height='90' />
</a>

代码详解:

  • [field:litpic/]:这是调用文章缩略图地址的核心标签,它会自动获取你在后台设置的缩略图路径。
  • [field:arcurl/]:这是调用文章链接地址的标签,我们将它放在 <a> 标签的 href 属性中,这样点击图片就能跳转到文章详情页。
  • [field:title/]:这是调用文章标题的标签,我们把它放在 <img> 标签的 alt 属性中,这对于SEO(搜索引擎优化)和无障碍访问非常重要。
  • width='120' height='90':直接在 <img> 标签中设置图片的显示宽高,可以防止页面布局错乱。

示例效果:

<li>
    <span class="title"><a href="[field:arcurl/]">[field:title/]</a></span>
    <span class="pic">
        <!-- 在这里插入图片代码 -->
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]" width="120" height="90" />
        </a>
    </span>
    <span class="intro">[field:description function='cn_substr(@me,100)'/]...</span>
</li>

页(文章详情页)显示文章内容中的图片

这种方法用于显示文章正文中作者插入的图片。

步骤 1:确保文章正文中有图片

在后台编辑文章时,使用编辑器(如ckeditor)插入图片。

步骤 2:修改文章内容页模板文件

找到你当前使用的模板目录下的文章详情页模板文件,通常是: /templets/default/article_article.htm (默认模板) 或者你自定义模板目录下的 article_xxx.htm

在需要显示文章正文的位置,使用 {dede:field.body/}

{dede:field.body/}

这个标签的作用是: 它会自动解析文章正文中的所有HTML代码,包括 <img> 标签,所以正文里的图片会直接显示出来。


调用自定义字段中的图片

你可能需要在文章中额外上传一些图片,产品图”、“轮播图”等,这时就需要使用自定义字段。

步骤 1:添加自定义字段

  1. 在后台进入“核心” -> “内容模型管理” -> 选择你的模型(文章模型”)-> “字段管理”。
  2. 点击“添加新字段”。
  3. 字段名: 填写一个英文字母,product_img
  4. 字段类型: 选择“图片(单张)”。
  5. 保存。

步骤 2:在文章中填写图片值

发布或编辑文章时,你会发现新增了一个“产品图”的输入框,在这里上传你的图片。

步骤 3:在模板中调用

在模板文件(列表页或内容页)中,使用以下标签来调用:

<img src='[field:product_img/]' alt='自定义图片' />

注意: [field:product_img/] 中的 product_img 必须和你刚才设置的“字段名”完全一致。


高级技巧与常见问题

图片路径问题( 和 )

你会发现图片路径前面有 ,或者图片无法显示,这和 DedeCMS 的“站点设置”有关。

  • 解决方法: 进入后台“系统” -> “系统基本参数” -> “核心设置”,找到“cfg_multi_site”选项。
    • 如果你的网站是根目录安装,将其设置为 N
    • 如果你的网站在子目录(如 www.yoursite.com/ dedecms/),将其设置为 Y
    • 设置后,重新生成一下HTML,路径问题通常就能解决。

图片裁剪与缩略图

DedeCMS 自带强大的图片处理功能,可以在调用缩略图时自动生成指定尺寸的图片,避免原图过大导致页面加载缓慢。

使用方法:在 [field:litpic/] 后面加上 styleddimg 参数。

<!-- 方法一:使用 style 参数(推荐) -->
<img src="[field:litpic style='imgwidth=250&imgheight=180&text=/uploads/allimg/240101/1-2401011GK0152.jpg'/]" alt="[field:title/]">
<!-- 方法二:使用 ddimg 参数(旧版) -->
<img src="[field:litpic ddimg='imgwidth=250&imgheight=180'/]" alt="[field:title/]">

参数说明:

  • imgwidth=250:设置缩略图宽度为 250px。
  • imgheight=180:设置缩略图高度为 180px。
  • text='...':可以给图片加上一个文字水印。

这样,即使你上传的是一张 1000x1000 的大图,DedeCMS 也会自动生成一个 250x180 的小图来显示,大大提升网站性能。

循环调用多张图片(如幻灯片、产品图集)

如果你的自定义字段类型是“图片(多张)”,那么调用方式就和单张图片不同。

  1. 添加字段: 和前面一样,但“字段类型”要选择“图片(多张)”。
  2. 填写图片: 在后台用逗号 分隔上传多张图片,/uploads/1.jpg,/uploads/2.jpg,/uploads/3.jpg
  3. 模板调用: 使用 {dede:field}array 属性来循环遍历。
<ul class="pic-list">
    {dede:field name='imgurls' function='str_replace(",", "@me", @me)'/}
    {dede:array}
        <li>
            <a href="[field:link/]" target="_blank">
                <img src="[field:value/]" alt="图片" />
            </a>
        </li>
    {/dede:array}
</ul>

代码解释:

  • {dede:field name='imgurls' function='str_replace(",", "@me", @me)'/}:这一步很关键,它将用逗号分隔的字符串转换成一个数组,供下面的 {dede:array} 循环使用。
  • {dede:array}...{/dede:array}:这是一个循环标签,它会遍历上一步生成的数组。
  • [field:value/]:在循环中,它代表当前循环到的单张图片的路径。
场景 核心标签 说明
文章列表缩略图 [field:litpic/] 用于首页、列表页,调用后台设置的缩略图。
图片 {dede:field.body/} 用于文章详情页,自动显示正文中的所有图片。
自定义单张图片 [field:你的字段名/] 调用你在模型中添加的单张图片字段。
自定义多张图片 {dede:array}...{/dede:array} 调用多张图片字段,需要配合 function 进行数据转换。

希望这份详细的指南能帮助你解决在 DedeCMS 中显示图片的问题!如果还有其他疑问,欢迎随时提问。

-- 展开阅读全文 --
头像
最简单C语言游戏程序如何入门?
« 上一篇 04-27
C语言如何编写Web服务器?
下一篇 » 04-27
取消
微信二维码
支付宝二维码