echo
是一种PHP语言构造,它将值推送到输出缓冲区。它没有返回值,因此将其与字符串连接将导致echo
立即发送到输出缓冲区,以及之前的所有内容echo
组成连接的字符串。这就是滥用echo
PHP本身实际上不允许这样做-如果启用了WordPress调试,您将看到类似以下的错误
分析错误:语法错误,意外的“echo”(T\\u echo)
此错误是导致您出现白色屏幕的原因-当不处于调试模式时,WordPress会抑制错误输出,以避免向最终用户公开潜在的敏感信息。
你不应该使用echo
在短代码逻辑中,WordPress对短代码的返回值进行更多处理。所以使用echo
在短代码中,很有可能会弄乱最终的标记。
包括echo
在edd_get_cart_total()
不会导致货币格式。我已经挖透了the plugin in question\'s source code 只是想确定一下。相反,更可能的是,某些函数连接到edd_get_cart_total
筛选以格式化模板中的输出(从而格式化在header.php
模板),但在未附加筛选器的短代码上下文中。
该插件方便地提供了ebb_cart_total()
函数,该函数将始终生成货币格式的合计字符串。函数的第一个参数是$echo
这在默认情况下为true,并将导致函数显示总计而不是返回它-如前所述,这不是您希望在短代码中执行的操作-因此将此参数设置为false
让函数返回一个字符串,您可以将该字符串与其他短代码标记连接起来。
总之:
function eddminicartfunc() {
return
\'<div class="mobilemenucart">
<i class="fa fa-shopping-cart"></i>
<span class="header-cart-total"> \' . edd_cart_total( false ) . \' </span>
<span class="header-cart edd-cart-quantity">\' . edd_get_cart_quantity() . \'</span>
</div>\';
}
add_shortcode( \'eddminicart\', \'eddminicartfunc\' );