【发布时间】:2019-02-12 11:38:55
【问题描述】:
我有一个属性循环并试图在<select> 下拉列表的第一个选择中显示属性名称。但是每次我回显这个名字时,都会显示 slug。所以显示的是“pa_attribute_metal”而不是“Metal”。
以下是我当前的循环和我当前使用的代码。显然$attribute['name'] 并没有提取实际名称。
$attributes = $product->get_attributes();
foreach ($attributes as $attribute):
echo '<select name="'.$attribute['name'].'" class="example">';
echo '<option name="'.$attribute['name'].'">'.$attribute['name'].'</option>';
echo '</select>';
endforeach;
通过每个循环提取属性的实际显示名称并将其显示在<option> 中的最佳方法是什么?
【问题讨论】:
-
是否有必要在循环内使用
echo '<select name="'.$attribute['name'].'" class="example">';?调试,print_r($attributes)foreach 开始前并分享结果 -
使用多个下拉菜单,因为产品页面中有多个属性。因此,foreach 中的
<select>。 -
@devpro 这里是打印: Array ( [pa_attribute-metal] => WC_Product_Attribute Object ( [data:protected] => Array ( [id] => 1 [name] => pa_attribute-metal [选项] => 数组([0] => 28 [1] => 29 [2] => 27 [3] => 26)[位置] => 1 [可见] => 1 [变体] =>) ) )
-
你的代码 100% 没问题,检查 ` [name] => pa_attribute-metal` 你在这里没有名字
-
我认为
$product->get_attributes()应该是$_product->get_attributes()不是吗?
标签: php html wordpress woocommerce woocommerce-theming