织梦如何只显示有缩略图的文章?

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

使用 haspic 属性(最推荐,最简单)

这是织梦官方提供的最直接、最简洁的方法。arclistlist 标签都支持 haspic 属性。

织梦 只显示有缩略图的
(图片来源网络,侵删)

适用场景:

  • 在首页、栏目页等使用 {dede:arclist} 标签的地方。
  • 在列表页使用 {dede:list} 标签的地方。

操作步骤:

  1. 打开你需要修改的模板文件,

    • 首页模板:/templets/default/index.htm
    • 栏目列表页模板:/templets/default/list_category.htm (具体路径根据你的模板命名规则而定)
  2. 找到文章列表标签,通常是 {dede:arclist}{dede:list}

  3. 在标签内添加 haspic='1' 属性。

    织梦 只显示有缩略图的
    (图片来源网络,侵删)

示例代码:

首页/栏目页 ({dede:arclist}) 修改

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

说明:

  • haspic='1' 的作用是只调用包含缩略图的文章
  • 这样做之后,即使文章没有设置缩略图,也不会被显示出来。

列表页 ({dede:list}) 修改

{dede:list pagesize='10' haspic='1'}
    <li>
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]" />
            <h3>[field:title/]</h3>
        </a>
    </li>
{/dede:list}

说明:

  • 在列表页中使用 haspic='1' 同样有效,它会过滤掉没有缩略图的文章。

使用 innertextif 判断(更灵活)

如果你希望在“有缩略图”和“无缩略图”时显示不同的样式,或者对无缩略图的文章进行特殊处理(例如显示一个默认图片),可以使用 {dede:if} 条件判断。

适用场景:

  • 需要对有无缩略图的文章进行差异化显示时。

操作步骤:

  1. 同样,打开你的模板文件。

  2. {dede:arclist}{dede:list} 标签内部,使用 {dede:if} 来判断 [field:litpic/] 是否为空。

示例代码:

{dede:arclist titlelen='30' row='10'}
    <li>
        {dede:if field='litpic' }
            <!-- 如果有缩略图,则显示缩略图和链接 -->
            <a href="[field:arcurl/]">
                <img src="[field:litpic/]" alt="[field:title/]" />
                <span>[field:title/]</span>
            </a>
        {else /}
            <!-- 如果没有缩略图,可以显示一个默认图片或者只显示标题 -->
            <a href="[field:arcurl/]">
                <img src="/templets/default/images/default.jpg" alt="[field:title/]" /> <!-- 请替换为你的默认图片路径 -->
                <span>[field:title/]</span>
            </a>
            <!-- 或者只显示文字 -->
            /*
            <a href="[field:arcurl/]">
                <span>[field:title/]</span>
            </a>
            */
        {/dede:if}
    </li>
{/dede:arclist}

说明:

  • {dede:if field='litpic' } 会判断文章的缩略图字段是否不为空。
  • 这种方法非常灵活,可以满足各种复杂的布局需求,但如果你想实现“只显示有缩略图的”,直接在里面调用 haspic='1' 会更高效。

修改PHP源码(不推荐,除非必要)

警告: 此方法涉及修改织梦核心文件,可能会导致升级困难或在后续版本中失效,请务必在修改前备份你的文件

适用场景:

  • 你希望全局、永久性地改变织梦的默认行为,让所有地方默认只调用有缩略图的文章。
  • 你无法修改所有模板文件。

操作步骤:

  1. 备份文件!备份文件!备份文件!

  2. 找到并打开织梦的核心文件:/include/arc.listview.class.php (用于列表页) 和 /include/arc.archives.class.php (用于文章页,但通常列表页是主要修改对象),这里我们以列表页为例。

  3. ArcListView 类中找到 GetList() 方法。

  4. 在该方法的SQL查询语句中,添加一个条件来筛选 litpic 字段。

具体修改:

ArcListView.class.php 文件中,找到类似下面这样的代码段:

// 大约在200行左右,根据版本不同位置可能略有差异
$this->dsql->SetQuery("SELECT id,typename,isdefault,defaultname,namerule2,moresite,siteurl,sitepath
    FROM `#@__arctype` WHERE id='".$this->TypeLink->TypeInfos['id']."' ");
$this->dsql->Execute('t');
$this->TypeLink->TypeInfos = $this->dsql->GetArray('t');

继续向下找到真正获取文章列表的SQL查询,它通常在一个 if 语句块里,

// ... 省略其他代码 ...
if($this->TotalResult > 0)
{
    $this->dsql->SetQuery("SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,
        tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
        FROM `#@__archives` arc
        LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id
        WHERE {$this->addSql} $orderQuery
        LIMIT {$this->PageSize} OFFSET {$this->PageNo-1}");
    // ... 省略其他代码 ...
}

关键修改点:

你需要修改 WHERE 子句,在 $this->addSql 后面,添加一个 AND 条件。

修改前: WHERE {$this->addSql} $orderQuery

修改后: WHERE {$this->addSql} AND arc.litpic != '' $orderQuery

说明:

  • arc.litpic != '' 这个条件会确保只选择 litpic 字段不为空的文章。
  • 修改完成后,保存文件,然后清空一下网站缓存(在后台“系统” -> “一键更新网站” -> “更新缓存”)。

总结与建议

方法 优点 缺点 推荐度
方法一 (haspic='1) 最简单、最安全、官方支持,修改模板即可,不涉及核心文件。 只能实现“只显示有缩略图的”,无法自定义无图时的样式。 ★★★★★ (强烈推荐)
方法二 (if 判断) 最灵活,可以自定义有无缩略图时的不同显示方式。 代码稍复杂,如果只想隐藏无图文章,不如方法一简洁。 ★★★★☆ (推荐用于特殊布局)
方法三 (修改PHP) 一劳永逸,全局生效,无需修改每个模板。 有风险,破坏核心文件,升级困难,可能与其他插件冲突。 ★☆☆☆☆ (不推荐,除非有特殊且全局的需求)

对于绝大多数用户来说,直接使用方法一,在 {dede:arclist}{dede:list} 标签中添加 haspic='1' 属性,是最佳选择。 它简单、安全、高效。

-- 展开阅读全文 --
头像
16进制转换为10进制 c语言
« 上一篇 01-07
仿某素材下载站源码织梦
下一篇 » 01-07

相关文章

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

目录[+]