dede source为空时如何实现不显示?

99ANYc3cd6
预计阅读时长 9 分钟
位置: 首页 DEDE建站 正文

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

dede source 为空不显示
(图片来源网络,侵删)
  1. 完全不渲染这个标签:如果来源为空,{dede:field.name='source'} 这整段代码在最终生成的 HTML 页面中都不存在。
  2. 显示一个默认值:如果来源为空,就显示一个自定义的文本,本站原创”或“未知来源”,而不是空白。

下面我将针对这两种情况,提供几种最常用和最有效的解决方案。


解决方案一:使用 if 条件判断(推荐,最灵活)

这是最规范、最灵活的方法,通过 if 判断,我们可以精确控制来源字段的显示逻辑。

操作步骤:

  1. 打开你需要修改的模板文件,文章内容页模板 article_article.htm 位于 /templets/default/ 目录下。

    dede source 为空不显示
    (图片来源网络,侵删)
  2. 找到类似这样的代码:

    <span>来源:{dede:field name='source'/}</span>
  3. 将其替换为以下代码:

    {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 条件判断的结束标签。

优点:

dede source 为空不显示
(图片来源网络,侵删)
  • 逻辑清晰,可以处理各种复杂情况。
  • 可以自定义显示的文本,非常灵活。

解决方案二:使用 default 属性(最简单)

DedeCMS 的很多字段标签都支持 default 属性,专门用来设置当字段为空时的默认值。

操作步骤:

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

  2. 找到 {dede:field name='source'/}

  3. 为其添加 default 属性:

    {dede:field name='source' default='本站原创'/}

代码解释:

  • 如果文章来源字段有内容,则正常显示该内容。
  • 如果文章来源字段为空,则显示 default 后面引号里的内容,即“本站原创”。

如果想让它完全为空不显示:

你只需要把 default 的值设置为一个空字符串即可。

{dede:field name='source' default=''/}

优点:

  • 语法最简单,一行代码搞定。
  • 专门为处理默认值而设计,代码意图明确。

缺点:

  • 功能相对单一,只能设置一个固定的默认值,无法进行更复杂的判断(比如只在非空时才添加“来源:”前缀)。

解决方案三:使用 trim 函数(适用于处理纯空格)

来源字段可能不是完全为空,而是只包含一些空格字符,使用 trim 函数可以去除这些空格,然后再进行判断。

操作步骤:

  1. 打开模板文件。

  2. 使用 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 条件判断) 是最合适的选择,它也是专业开发中最常用的方法。

选择最适合你当前需求的方法即可,通常情况下,方案一 是最推荐和最通用的解决方案。

-- 展开阅读全文 --
头像
如何在Linux CentOS下编写C语言程序?
« 上一篇 今天
dede为何自动跳转至index.html?
下一篇 » 今天

相关文章

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