使用“隐藏”属性(推荐,最常用)
这是DedeCMS内置的一个最简单、最直接的隐藏方法,它能让文章在所有列表(首页、栏目页、搜索页等)中不显示,但文章本身仍然存在于数据库中,可以通过直接输入文章链接或通过后台管理访问。

适用场景:需要暂时下线文章,但又不想删除,或者希望文章通过特定链接(如分享)可以访问。
操作步骤:
-
登录DedeCMS后台:使用你的管理员账号登录。
-
进入文章编辑:找到你想要隐藏的文章,可以通过“内容发布” -> “普通文章”中找到,或者直接在文章管理里搜索。
(图片来源网络,侵删) -
修改文章属性:
- 在文章编辑页面,找到右上角的“常规选项”或“高级选项”区域。
- 勾选 “隐藏” 这个选项。
-
保存:点击“保存”按钮。
效果:
- 前台:文章将不再出现在首页、栏目页、推荐位列表、搜索结果等任何列表页中。
- 后台:文章依然存在,可以正常编辑和管理。
- 访问:如果有人知道文章的具体URL地址(
https://www.yoursite.com/a/123/456.html),仍然可以正常访问该文章内容。
优点:

- 操作极其简单,一键完成。
- 文章数据完整保留,随时可以取消隐藏。
- 不需要修改任何代码。
设置“不生成HTML”或“仅动态浏览”
这种方法让文章内容无法通过静态的HTML页面访问,只能通过动态链接(plus/view.php?aid=123)访问。
适用场景:对于一些经常更新、不适合生成静态页面的内容,或者希望降低服务器负载。
操作步骤:
-
登录后台并编辑文章:同方法一。
-
修改文章属性:
- 在“常规选项”中,找到 “不生成HTML” 或 “仅动态浏览” 选项并勾选。
-
保存:点击“保存”。
效果:
- 前台:文章不会生成静态HTML文件,如果用户尝试访问
https://www.yoursite.com/a/123/456.html,很可能会显示“页面不存在”或跳转到动态链接。 - 访问:文章可以通过动态链接
https://www.yoursite.com/plus/view.php?aid=123访问。 - 列表:文章仍然会出现在列表页中,除非你同时使用了方法一。
注意:此方法通常与方法一结合使用,以达到“列表不显示且只能通过动态链接访问”的效果。
修改栏目属性(隐藏整个栏目)
如果你想把一个栏目下的所有文章都隐藏,可以修改栏目的属性。
适用场景:某个栏目暂时不对外展示,内部通知”、“草稿箱”等。
操作步骤:
-
进入栏目管理:在后台菜单中,点击“核心” -> “栏目管理”。
-
编辑目标栏目:找到你想要隐藏的栏目,点击后面的“[更改]”或“[管理]”进入编辑页面。
-
修改栏目选项:
- 在栏目编辑页面,找到 “栏目列表选项” 或类似标题的区域。
- 取消勾选 “栏目列表”(或在DedeCMS旧版本中,可能有一个“隐藏”的选项)。
-
保存:点击“保存”。
效果:
- 该栏目及其下的所有文章都不会在主导航或任何列表页中显示。
- 但通过直接输入栏目链接或文章链接,仍然可以访问。
设置会员可见(权限控制)
这是最灵活、最强大的隐藏方式,它可以让文章只对特定等级的会员、特定用户组可见。
适用场景、VIP专属内容、内部培训资料等。
操作步骤:
-
准备工作:确保你已经创建了会员用户组,并将目标用户设置为相应等级。
-
登录后台并编辑文章:同方法一。
-
设置浏览权限:
- 在文章编辑页面,找到“高级选项”或“会员权限”相关区域。
- 找到 “浏览权限” 选项。
- 默认是“开放”,选择 “指定级别” 或 “指定会员组”。
- 在下拉列表中,勾选你希望可以看到这篇文章的用户组或级别。
-
保存:点击“保存”。
效果:
- 非会员/无权限会员:在列表页和文章页都会看到“您没有权限查看此内容”或类似的提示。
- 有权限会员:可以正常浏览文章内容。
通过修改模板实现“伪隐藏”(代码级)
这是一种更高级的方法,通常用于自定义的隐藏逻辑,比如只对当天发布的文章隐藏一天,或者只隐藏标题但显示摘要等。
适用场景:非常规的、复杂的隐藏需求。
操作步骤:
- 找到列表模板文件:通常位于
/templets/default/目录下,文件名如article_list.htm(首页列表)、list_article_category.htm(栏目列表) 等。 - 使用DedeCMS的判断语句:在模板文件中,使用
{dede:list}或{dede:arclist}标签时,结合function或runphp属性进行判断。
示例:隐藏某个特定ID的文章
在 article_list.htm 的 {dede:list} 循环体内,加入以下判断代码:
{dede:list pagesize='10'}
<li>
<!-- 下面这句是判断,如果文章ID是100,就不显示整条记录 -->
[field:id runphp='yes']
if(@me == 100) {
@me = '';
} else {
@me = '<a href="[field:arcurl/]">[field:title/]</a>';
}
[/field:id]
</li>
{/dede:list}
示例:隐藏标题,但显示摘要
{dede:list}
<li>
<!-- 如果文章ID是100,就不显示标题,否则正常显示 -->
[field:id runphp='yes']
if(@me == 100) {
@me = '';
} else {
@me = '<a href="[field:arcurl/]">[field:title/]</a>';
}
[/field:id]
<!-- 显示摘要,对所有文章都有效 -->
<p>[field:description function='cn_substr(@me,100)'/]...</p>
</li>
{/dede:list}
优点:
- 灵活性极高,可以实现任何自定义逻辑。
- 不影响数据库。
缺点:
- 需要一定的PHP和模板知识。
- 每次修改都需要更新模板缓存(后台 -> 系统 -> 站点缓存 -> 更新缓存)。
总结与建议
| 方法 | 隐藏效果 | 访问方式 | 推荐场景 | 难度 |
|---|---|---|---|---|
| 隐藏属性 | 列表页不显示 | 直接链接可访问 | 临时下线、分享链接 | ⭐ |
| 不生成HTML | 静态页面无效 | 动态链接可访问 | 降低服务器负载 | ⭐⭐ |
| 隐藏栏目 | 整个栏目不显示 | 直接链接可访问 | 暂时停用整个栏目 | ⭐ |
| 会员可见 | 无权限用户无法访问 | 有权限会员可访问 | 、VIP内容 | ⭐⭐⭐ |
| 修改模板 | 完全自定义隐藏逻辑 | 可自定义 | 复杂、非标准需求 | ⭐⭐⭐⭐ |
对于绝大多数用户,我首推【方法一:使用“隐藏”属性】,它简单、安全、高效,能满足90%的隐藏需求,如果需要权限控制,再使用【方法四:设置会员可见】。
