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


WordPress, cmb2: can't use function return value in write context

以下代码编译失败:

 <?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/主题/banmo120/erjianban.php第26行

我该如何修复它?

您可能运行的是PHP 5.4或更早版本,因为

在PHP 5.5之前,empty()只支持变量;其他的都可以导致解析错误。换句话说,以下内容将不起作用:空(修剪(名字)美元)。请使用trim($name) == false。

参见empty()函数的文档

因此,在PHP 5.4(及更早版本)中,您必须使用比较操作符检查结果:

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)))

注::考虑使用标识符