文章置顶概述
织梦CMS的文章置顶功能允许将特定文章固定在栏目列表页的顶部,不受发布时间排序规则的影响。置顶文章通过设置"头条"属性(flag='h')并结合 orderby='sortrank' 或自定义排序值(sortrank)来实现。
一、方式一:使用头条属性置顶
织梦CMS最常用的置顶方法:
- 进入文章编辑页面
- 在"属性设置"中勾选"头条"
- 在模板中使用
flag='h'优先展示置顶文章
<!-- 先显示置顶文章(头条) -->
<div class="top-articles">
{dede:arclist typeid='{dede:field.id/}' flag='h' row='3'}
<div class="top-item">
<span class="top-badge">置顶</span>
<a href="[field:arcurl/]">[field:title/]</a>
</div>
{/dede:arclist}
</div>
<!-- 再显示普通文章(排除头条) -->
<div class="normal-articles">
{dede:list pagesize='20' noflag='h'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:list}
</div>
二、方式二:使用 sortrank 字段排序
通过修改 sortrank 值来控制文章顺序:
-- 将文章sortrank设为最大值实现置顶 UPDATE dede_archives SET sortrank=999999 WHERE id=文章ID; -- 取消置顶(恢复为ID值) UPDATE dede_archives SET sortrank=id WHERE id=文章ID; -- 批量置顶:将sortrank设为远大于ID的值 UPDATE dede_archives SET sortrank=id + 1000000 WHERE typeid=3 AND click > 500;
模板中使用 orderby='sortrank' 排序:
<!-- 按sortrank降序排列(置顶文章在前) -->
{dede:arclist typeid='3' row='10' orderby='sortrank'}
三、方式三:按发布时间修改实现置顶
将文章的发布时间设为未来时间:
-- 将发布日期设为遥远的未来,实现长期置顶
UPDATE dede_archives
SET pubdate=UNIX_TIMESTAMP('2099-12-31 00:00:00'),
senddate=UNIX_TIMESTAMP('2099-12-31 00:00:00')
WHERE id=文章ID;
四、方式四:组合排序(置顶+时间)
<!-- SQL实现:先按置顶标记排序,再按时间 -->
{dede:sql sql="SELECT * FROM dede_archives
WHERE typeid={dede:field.id/} AND arcrank=0
ORDER BY
CASE WHEN flag LIKE '%h%' THEN 0 ELSE 1 END,
pubdate DESC
LIMIT 20"}
<li>
[field:flag runphp='yes']
if(strpos(@me,'h')!==false) echo '<span class="top">置顶</span>';
[/field:flag]
<a href="/plus/view.php?aid=[field:id/]">[field:title/]</a>
</li>
{/dede:sql}
五、栏目中置顶文章的数量管理
<!-- 控制置顶数量(最多3条) -->
{dede:php}
$typeid=$refObj->TypeLink->TypeInfos['id'];
// 检查当前栏目的置顶文章数量
$topCount=$dsql->GetOne(
"SELECT COUNT(*) as c FROM dede_archives
WHERE typeid={$typeid} AND flag LIKE '%h%' AND arcrank=0"
);
if($topCount['c'] > 3){
echo '<div class="warn">提示:当前栏目有'.$topCount['c'].'条置顶文章,过多置顶将影响展示效果</div>';
}
{/dede:php}
置顶策略建议:建议每个栏目置顶文章不超过3条,否则会失去"置顶"的意义。对于需要长期置顶的重要公告,使用 sortrank 方式;对于临时置顶(如活动通知),使用发布时间方式,方便到期自动下沉。