我正在尝试向主题添加新功能,即显示/隐藏页面标题,但由于我已经有大约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吗?
我该怎么做呢?
最合适的回答,由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将某些值转换为布尔值
true
或
false
用于平等比较。有时你会听到人们说一个值是“truthy”或“false”,反映了它将如何转换为布尔值。