并结合 orderby='sortrank'自定义排序值(sortrank)来实现。

一、方式一:使用头条属性置顶

织梦CMS最常用的置顶方法:

  1. 进入文章编辑页面
  2. "属性设置"中勾选"头条"
  3. 在模板中使用 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 方式;对于临时置顶(如活动通知),使用发布时间方式,方便到期自动下沉。