php - 如何在每个循环中显示产品属性名称而不是 slug?
问题描述
我有一个属性循环并试图在<select>
下拉列表的第一个选择中显示属性名称。但是每次我回显这个名字时,都会显示 slug。所以pa_attribute_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>
?
解决方案
<select name="attribute_taxonomy" class="attribute_taxonomy">
<option value=""><?php esc_html_e('product attribute', 'woocommerce'); ?></option>
<?php
global $wc_product_attributes;
// Array of defined attribute taxonomies.
$attribute_taxonomies = wc_get_attribute_taxonomies();
if (!empty($attribute_taxonomies)) {
foreach ($attribute_taxonomies as $tax) {
$attribute_taxonomy_name = wc_attribute_taxonomy_name($tax->attribute_name);
$label = $tax->attribute_label ? $tax->attribute_label : $tax->attribute_name;
echo '<option value="' . esc_attr($attribute_taxonomy_name) . '">' . esc_html($label) . '</option>';
}
}
?>
</select>
推荐阅读
- python - 无法理解元素交换(python 列表)
- javascript - 如何使用 Puppeteer 暂停并等待用户输入?
- javascript - 如何在站点后将浏览器窗口大小调整为 75%
- mysql - MySQL查询列出每个用户在几个表中出现的次数
- ruby - 如何以编程方式设置 content_security_policy?
- linux - 使用 bash 将一个文件中的行内容复制到另一个文件中的特定字符位置
- javascript - 如果特定文本(价格 0)显示在 span 中,则隐藏元素
- php - 如何通过从 PostgreSQL 转换为 DQL 来完成这种动态平均?
- c# - 粒子系统没有通过代码播放
- python - Python gRPC 服务器不监听指定端口