如果自定义字段不存在,或者存在并且是真的显示标题?

时间:2014-02-01 作者:lonerunner

我正在尝试向主题添加新功能,即显示/隐藏页面标题,但由于我已经有大约50篇帖子,我无法访问所有帖子并再次保存以保存自定义字段值。

因此,我尝试检查自定义字段是否不存在,或者是否存在但未设置为false来显示标题。但我总有一天会失败的。

自定义字段是带有复选框的元框,选中时在数据库中记录“1”,未选中时在数据库中记录“0”。当然,自从我现在添加它以来,有50篇文章的数据库中并没有这个字段。

这是我最后一次试训。

if ( empty(vf_get_meta($post->ID, \'page_options\', \'show_title\')) || (vf_get_meta($post->ID, \'page_options\', \'show_title\') == true ))
这应该检查meta是否为空或是否为真,并显示页面标题。但有些事我不明白。如果为空,return不是false吗?

我该怎么做呢?

1 个回复
最合适的回答,由SO网友:Seamus Leahy 整理而成

empty 检查以下几项:

(空字符串)

  • 0(0为整数)
  • 0.0(0为浮点)
  • “0”(0为字符串)
  • 数组()(空数组)
  • $var;(声明了一个变量,但没有值)
  • 简而言之,您正在检查该值的计算结果是false还是true。无论哪种方式,它都将始终评估为真。

    现在我不知道函数是什么vf_get_meta 返回空值。如果你看看核心get_post_meta 函数,当single标志设置为true时,它返回空数组或空字符串。

    我认为最好的重写是:

    if ( vf_get_meta($post->ID, \'page_options\', \'show_title\') !== false )
    
    我们是说,只要不设置为false, 去做吧。你会注意到我!== 而不是!=. 这个!== 是否“不相同”comparison 而不是!= “不相等”。PHP将某些值转换为布尔值truefalse 用于平等比较。有时你会听到人们说一个值是“truthy”或“false”,反映了它将如何转换为布尔值。

    结束

    相关推荐

    将php快捷代码转换为小工具

    我有一段php,它以我需要的格式调用一段简短的代码,其中包含今天的日期。<?php $today = date(\'d.m\');echo do_shortcode(\'[table id=1 column_widths=\"10%|10%|80%\" filter=\"\'.$today.\'\" /]\'); ?>我可以把它放在一个页面模板中,这样就可以了,但我想在html/txt小部件中使用它。如何从上面制作小部件?