我在存档和类别页面上显示了产品属性。
add_action( 'woocommerce_after_shop_loop_item', 'new_template_loop_product_meta', 20 );
function new_template_loop_product_meta() {
global $product;
if( ! is_object( $product ) ) {
$product = wc_get_product( get_the_id() );
$sku = $product->get_sku();
}
echo '<div class="pa">';
echo '<span>Brand: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_brand') . '</span><br />';
echo '<span>Country: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_contry') . '</span><br />';
echo '<span>SKU: </span>' . '<span class="pa-right">' . $product->get_sku() . '</span><br />';
echo '<span>Material: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_material') . '</span><br />';
echo '<span>Type: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_product_type') . '</span><br />';
echo '<span>Color: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_color') . '</span><br />';
echo '<span>Size: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_size') . '</span><br />';
echo '<span>Model: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_model') . '</span><br />';
echo '<span>Collection: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_collection') . '</span><br />';
echo '<span>Mechanism: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_mechanism') . '</span><br />';
echo '<span>Magnetic: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_magnetic') . '</span><br />';
echo '<span>Side: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_side') . '</span><br />';
echo '<span>Load: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_load') . '</span><br />';
echo '<span>Availability: </span>' . '<span class="pa-right">' . $product->get_attribute('pa_availability') . '</span>';
echo '</div>';
}
但是这些页面按原样显示所有属性的名称。告诉我,我怎样才能只显示为特定产品设置的那些属性?
这可能是第二个问题。优化代码的最佳方法是什么,以便对具有如此多属性的 Base 没有不必要的请求。
我会很高兴你的帮助!
以下代码仅显示给定产品具有的那些属性:
代码不需要优化。在 WordPress 和 WooCommerce 中,所有内容都被缓存,每个产品只需向数据库发出一次请求,即可读取所有产品属性。