WordPress,cmb2:在写上下文中不能使用函数返回值

时间:2016-10-30 06:51:11

标签: php wordpress

以下代码无法编译:

 <?php if(!empty(get_post_meta(get_the_ID(), 'nf_maetadata_prefix_bicon', true))){?>
                  <p> <img src="<?php echo get_post_meta(get_the_ID(), 'nf_maetadata_prefix_bicon', true) ?>" width="100px"> </p>
                   <?php }else{?>
                      <spam class="text-white"><b><?php echo get_post_meta(get_the_ID(), 'nf_maetadata_prefix_bicontext', true); ?></b></spam>
                  <?php }?>

出现如下错误:

  

在写入上下文中不能使用函数返回值   /var/www/html/dev.banmo120/sc/wp-content/themes/banmo120/erjianban.php   在第26行“

我该如何解决?

我正在使用cmb2 metabox。

1 个答案:

答案 0 :(得分:0)

您可能正在运行PHP 5.4或更早版本,因为

  

在PHP 5.5之前,empty()仅支持变量;别的什么都会   导致解析错误。换句话说,以下内容不起作用:   空(修剪($名))。相反,使用trim($ name)== false。

请参阅documentation for empty()功能。

因此,在PHP 5.4(及更早版本)中,您必须使用comparison operator检查结果:

if (false != get_post_meta(get_the_ID(), 'nf_maetadata_prefix_bicon', true)))

或仅依靠隐式转换为bool

if (get_post_meta(get_the_ID(), 'nf_maetadata_prefix_bicon', true)))

P.S。:考虑使用身份运算符。