【发布时间】:2016-12-13 01:56:02
【问题描述】:
我编写了两个函数来在每个产品下方的商店页面上显示自定义字段,可以查看here。具体来说是灯泡类型和覆盖区域。但是,这些仅适用于某些产品。现在,当它们不适用时,我正在输入 N/A,但是如果该字段为空,我想编写一个条件语句来隐藏整个部分。
不幸的是,每次我这样做时,代码都会破坏网站,因为它编写不正确。
这些是我编写的用于显示自定义字段的函数。
add_action('woocommerce_shop_loop_item_title','show_coverage');
function show_coverage() {
echo '<span class="extra-info-head">Coverage Area:</span> ';
$coverage = get_post_meta( $post->ID );
$custom_fields = get_post_custom();
$coverage = $custom_fields['wpcf-coverage-area'];
foreach ( $coverage as $key => $value ) {
echo $value . '<br/>';
}}
add_action('woocommerce_shop_loop_item_title','show_bulbs');
function show_bulbs() {
echo '<span class="extra-info-head">Light Bulbs:</span> ';
$custom_fields = get_post_custom();
$bulbs = $custom_fields['wpcf-light-bulbs'];
foreach ( $bulbs as $key => $value ) {
echo $value;
}}
抱歉,如果这些写得不好,非常感谢任何建议和帮助!
*更新:通过以下答案和 WordPress 自定义字段帖子的后端选项的组合解决了这个问题。
【问题讨论】:
-
您如何确定这些字段何时不适用?从你的问题中不清楚。另外,仅供参考:你的代码格式会让你在路上做噩梦。我强烈建议选择一种样式并使用一致的缩进。根据经验,如果您在一行中看到
}},您可能做错了事。 -
谢谢你,埃德!感谢您对格式的说明。其中一些是从它如何从我的文本编辑器中复制过来的,导致它不一致,但我明白你的意思。而且我目前还没有确定这些字段何时不适用。这就是我试图弄清楚如何处理我当前的代码。我所写的只是允许它们存在的函数。
-
这里很难知道该告诉你什么;我们需要知道您如何确定哪些产品具有这些字段,然后我们才能告诉您如何在适当的时候显示或隐藏它们。如果您为没有灯泡的产品执行
var_dump($custom_fields['wpcf-light-bulbs']);,您会得到什么?有灯泡的产品呢? -
我在 WordPress 上安装的 WooCommerce 平台内的每个可编辑产品页面上都有一个文本输入框。我在这里截取了它的样子(oi64.tinypic.com/6zx2bp.jpg)。现在,如果我没有在输入框中输入任何内容,标签仍会显示在产品下方,因此我将 N/A 作为临时解决方案放入这些框中。附件和替换零件是这两类项目不适用。如果我仍然感到困惑,我深表歉意。非常感谢您迄今为止所提供的所有帮助和时间!
标签: php wordpress if-statement custom-fields