织梦首页如何调取缩略图?

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

调用最新文章的缩略图

这是最常见的需求,即在首页某个位置显示最新发布的文章的缩略图。

织梦首页调取缩略图
(图片来源网络,侵删)

方法1:使用DedeCMS自带的arclist标签(推荐)

arclist是织梦最强大的列表标签,可以灵活地调用文章,并包含缩略图。

基本语法:

{dede:arclist row='5' titlelen='30' typeid=''}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            <img src="[field:litpic/]" alt="[field:title/]" />
        </a>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
    </li>
{/dede:arclist}

参数详解:

  • row='5':表示调用5条文章记录,len='30'`:表示标题最多显示30个字符(汉字)。
  • typeid='':留空表示调用所有栏目,如果你想指定调用某个栏目的文章,就填入栏目ID,typeid='1'
  • [field:litpic/]这是调用缩略图的核心标签,它会获取文章的“缩略图”字段。
  • [field:title/]:调用文章标题。
  • [field:arcurl/]:调用文章的完整链接地址。

完整示例(带样式):

织梦首页调取缩略图
(图片来源网络,侵删)

假设你想在首页右侧显示一个“最新图文”模块,每行显示一条,包含图片和标题。

<div class="latest-news">
    <h3>最新图文</h3>
    <ul>
        {dede:arclist row='5' titlelen='24' typeid=''}
        <li>
            <a href="[field:arcurl/]" class="img-link">
                <img src="[field:litpic/]" alt="[field:title/]" />
            </a>
            <a href="[field:arcurl/]" class="title-link">[field:title/]</a>
        </li>
        {/dede:arclist}
    </ul>
</div>

对应的CSS样式:

.latest-news { width: 300px; }
.latest-news h3 { border-bottom: 2px solid #eee; padding-bottom: 10px; margin-bottom: 15px; }
.latest-news ul { list-style: none; padding: 0; }
.latest-news li { margin-bottom: 15px; overflow: hidden; } /* 清除浮动 */
.latest-news .img-link { float: left; margin-right: 10px; }
.latest-news .img-link img { width: 100px; height: 75px; object-fit: cover; } /* 控制图片大小和比例 */
.latest-news .title-link { display: block; line-height: 1.5; font-size: 14px; color: #333; text-decoration: none; }
.latest-news .title-link:hover { color: #0066cc; }

调用指定栏目(如“新闻”)下的缩略图

这个需求和方法1几乎一样,只需要在arclist标签中指定typeid即可。

步骤:

织梦首页调取缩略图
(图片来源网络,侵删)
  1. 找到栏目ID:登录织梦后台,进入“栏目管理”,找到你想要调用的栏目(新闻”),记下它的ID(比如是“2”)。
  2. 使用typeid参数:在arclist标签中填入对应的ID。

代码示例:

<div class="news-list">
    <h3>新闻资讯</h3>
    <ul>
        {dede:arclist row='6' titlelen='30' typeid='2'}  <!-- 这里typeid='2' -->
        <li>
            <span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
        </li>
        {/dede:arclist}
    </ul>
</div>

这个例子调用了ID为“2”的“新闻”栏目下的6条记录,并显示了发布日期和标题。


调用自定义图集的缩略图

图集和普通文章不同,它的缩略图调用方式略有区别。

方法1:调用图集列表,并显示封面图

图集的封面图就是文章的litpic,所以调用方式和方法一完全一样。

{dede:arclist row='4' titlelen='20' typeid='3'} <!-- 假设图集栏目ID是3 -->
    <div class="album-item">
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]" />
        </a>
        <p>[field:title/]</p>
    </div>
{/dede:arclist}

方法2:在文章页/内容页调用图集内的所有图片

如果你想显示这个图集内的所有图片,需要使用field

在文章模板(article_article.htm)中使用:

{dede:field name='body'/} <!-- 这是文章正文,里面可能已经有图集标签了 -->
<!-- 如果你需要在正文外单独调用图集的所有图片 -->
{dede:field name='imgurls' alt='图片集'}
    <li>
        <a href="[field:imgurl/]" target="_blank">
            <img src="[field:imgurl/]" alt="[field:text/]" width="120" height="90" />
        </a>
    </li>
{/dede:field}
  • [dede:field name='imgurls'/]:这是调用当前文章所有图集图片的标签。
  • [field:imgurl/]:调用单张图片的地址。
  • [field:text/]:调用上传图片时填写的“图片描述/说明”。

常见问题与解决方案 (FAQ)

Q1: 为什么我的缩略图显示不出来?

  1. 检查文章是否上传了缩略图:进入后台编辑文章,确保在“缩略图”选项中上传了图片。
  2. 检查标签拼写:确保写的是 [field:litpic/] 而不是 [field:pic/] 或其他。
  3. 检查图片路径:如果图片路径不正确,可能是网站目录移动或配置问题,可以检查一下织梦后台的“系统” -> “系统基本参数” -> “核心设置”中的“附件目录”是否正确。
  4. 检查模板缓存:有时候修改模板后需要清除缓存才能看到效果,在后台“系统” -> “更新缓存”中清除。

Q2: 如何控制缩略图的尺寸?

直接在<img>标签中使用widthheight属性是最直接的方法。

<img src="[field:litpic/]" alt="[field:title/]" width="200" height="150" />

为了防止图片变形,建议使用object-fit: cover;(需要配合CSS)。

<style>
.img-wrapper img {
    width: 200px;
    height: 150px;
    object-fit: cover; /* 让图片填充容器,保持比例,超出部分裁剪 */
}
</style>
<div class="img-wrapper">
    <img src="[field:litpic/]" alt="[field:title/]" />
</div>

Q3: 我想调用文章正文中的第一张图片作为缩略图怎么办?

织梦默认不支持这个功能,但可以通过修改arclist标签的底层模板来实现。

  1. 在首页模板中,找到你的arclist
  2. 给它添加一个templet属性,指向一个自定义的底层模板文件。
{dede:arclist row='5' typeid='' templet='mylist.htm'}
  1. /templets/目录下(或者你自定义的模板目录),创建一个名为mylist.htm的文件,内容如下:
<li>
    <a href="[field:arcurl/]" title="[field:title/]">
        <!-- 使用正则表达式获取body中的第一张图片 -->
        [field:body function="preg_replace('/<img.*?src="(.*?)".*?>/i', '\\1', @me)"/]
    </a>
    <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>

注意:这种方法效率较低,如果文章内容很大,可能会影响页面加载速度,只建议在数据量不大的情况下使用。

需求场景 推荐标签 核心代码
调用最新文章缩略图 arclist [field:litpic/]
调用指定栏目缩略图 arclist [field:litpic/] + typeid='栏目ID'
调用图集封面图 arclist [field:litpic/]
调用图集内所有图片 field [dede:field name='imgurls'/]

对于绝大多数首页缩略图的需求,使用 {dede:arclist} 配合 [field:litpic/] 是最标准、最高效的解决方案,希望这份详细的指南能帮到你!

-- 展开阅读全文 --
头像
dede网页访问权限如何正确设置?
« 上一篇 04-18
织梦排版编辑器,如何轻松排版出好文章?
下一篇 » 04-18

相关文章

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