“为空不显示”通常有两种理解:

(图片来源网络,侵删)
- 完全不渲染这个标签:如果来源为空,
{dede:field.name='source'}这整段代码在最终生成的 HTML 页面中都不存在。 - 显示一个默认值:如果来源为空,就显示一个自定义的文本,本站原创”或“未知来源”,而不是空白。
下面我将针对这两种情况,提供几种最常用和最有效的解决方案。
解决方案一:使用 if 条件判断(推荐,最灵活)
这是最规范、最灵活的方法,通过 if 判断,我们可以精确控制来源字段的显示逻辑。
操作步骤:
-
打开你需要修改的模板文件,文章内容页模板
article_article.htm位于/templets/default/目录下。
(图片来源网络,侵删) -
找到类似这样的代码:
<span>来源:{dede:field name='source'/}</span> -
将其替换为以下代码:
{dede:field.name='source' runphp='yes'} if(@me != '') { @me = "来源:" . @me; } else { @me = "本站原创"; // 或者 @me = ''; // 如果想完全不留痕迹,就用这个 } {/dede:field}
代码解释:
runphp='yes':这是关键,它告诉 DedeCMS 在这里执行 PHP 代码。if(@me != ''):@me变量代表了{dede:field.name='source'}的值,也就是来源内容,这行代码的意思是:“@me(来源)不为空字符串...”。@me = "来源:" . @me;:如果来源不为空,就在@me前面加上“来源:”这个前缀,并重新赋值给@me。@me = "本站原创";:如果来源为空,就将@me的值设置为“本站原创”,如果你想让此处什么都不显示,就写成@me = '';。{/dede:field}:if条件判断的结束标签。
优点:

(图片来源网络,侵删)
- 逻辑清晰,可以处理各种复杂情况。
- 可以自定义显示的文本,非常灵活。
解决方案二:使用 default 属性(最简单)
DedeCMS 的很多字段标签都支持 default 属性,专门用来设置当字段为空时的默认值。
操作步骤:
-
同样,打开你的模板文件。
-
找到
{dede:field name='source'/} -
为其添加
default属性:{dede:field name='source' default='本站原创'/}
代码解释:
- 如果文章来源字段有内容,则正常显示该内容。
- 如果文章来源字段为空,则显示
default后面引号里的内容,即“本站原创”。
如果想让它完全为空不显示:
你只需要把 default 的值设置为一个空字符串即可。
{dede:field name='source' default=''/}
优点:
- 语法最简单,一行代码搞定。
- 专门为处理默认值而设计,代码意图明确。
缺点:
- 功能相对单一,只能设置一个固定的默认值,无法进行更复杂的判断(比如只在非空时才添加“来源:”前缀)。
解决方案三:使用 trim 函数(适用于处理纯空格)
来源字段可能不是完全为空,而是只包含一些空格字符,使用 trim 函数可以去除这些空格,然后再进行判断。
操作步骤:
-
打开模板文件。
-
使用
runphp结合trim函数:{dede:field.name='source' runphp='yes'} if(trim(@me) != '') { @me = "来源:" . @me; } else { @me = ""; // 不显示 } {/dede:field}
代码解释:
trim(@me)会去除@me值两端的空白字符(包括空格、制表符、换行符等)。- 这样可以避免因为误输入空格而导致来源显示为“来源: ”(后面带空格)的尴尬情况。
总结与建议
| 解决方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
if 条件判断 |
需要复杂逻辑,如为空时显示特定文本,非空时添加前缀等。 | 最灵活、功能最强大。 | 代码稍多,需要理解一点 PHP 逻辑。 |
default 属性 |
只需要设置一个默认值,是最简单的“为空不显示”或“为空显示XXX”的需求。 | 语法最简单、最直观。 | 功能有限,无法进行复杂处理。 |
trim 函数 |
来源字段可能包含无意义的空格,需要先清理再判断。 | 处理更严谨,避免显示问题。 | 通常需要配合 if 一起使用。 |
给你的建议:
- 如果你的需求非常简单,只是想让来源为空时显示“未知来源”或不显示,直接使用 方案二(
default属性) 是最快最方便的。 - 如果你的需求更复杂一些,比如想在来源不为空时才显示“来源:”这个标签,那么使用 方案一(
if条件判断) 是最合适的选择,它也是专业开发中最常用的方法。
选择最适合你当前需求的方法即可,通常情况下,方案一 是最推荐和最通用的解决方案。
