在产品循环中添加和包装产品类别 Wordpress/Woocommerce
Add and wrap product categories Wordpress/Woocommerce in product loop
我使用此代码段在商店和存档页面上的产品循环中显示产品类别:
add_action( 'woocommerce_after_shop_loop_item_title', 'add_product_cat', 2);
function add_product_cat()
{
global $product;
$product_cats = wp_get_post_terms($product->id, 'product_cat');
$count = count($product_cats);
foreach($product_cats as $key => $cat)
{
echo '<span class="add_product_cat">' . $cat->name . '</span>';
}
}
我想要这个:
<div class="product_cats">
<span class="add_product_cat">Cat 1</span>
<span class="add_product_cat">Cat 2</span>
</div>
为此,我使用 jQuery:
jQuery(function(){
jQuery(".woocommerce li.product").each(function() {
jQuery(this).find('span.add_product_cat').wrapAll('<div class="product_cats"></div>');
});
});
如何修改我的 PHP 片段以避免使用 jQuery?
您可以在 foreach 循环之前和之后附加相应的标签:
function add_product_cat()
{
// ...
echo '<div class="product_cats">';
foreach($product_cats as $key => $cat)
{
echo '<span class="add_product_cat">' . $cat->name . '</span>';
}
echo '</div>';
}
那么您不需要自定义 jQuery 代码来包装内容。
我使用此代码段在商店和存档页面上的产品循环中显示产品类别:
add_action( 'woocommerce_after_shop_loop_item_title', 'add_product_cat', 2);
function add_product_cat()
{
global $product;
$product_cats = wp_get_post_terms($product->id, 'product_cat');
$count = count($product_cats);
foreach($product_cats as $key => $cat)
{
echo '<span class="add_product_cat">' . $cat->name . '</span>';
}
}
我想要这个:
<div class="product_cats">
<span class="add_product_cat">Cat 1</span>
<span class="add_product_cat">Cat 2</span>
</div>
为此,我使用 jQuery:
jQuery(function(){
jQuery(".woocommerce li.product").each(function() {
jQuery(this).find('span.add_product_cat').wrapAll('<div class="product_cats"></div>');
});
});
如何修改我的 PHP 片段以避免使用 jQuery?
您可以在 foreach 循环之前和之后附加相应的标签:
function add_product_cat()
{
// ...
echo '<div class="product_cats">';
foreach($product_cats as $key => $cat)
{
echo '<span class="add_product_cat">' . $cat->name . '</span>';
}
echo '</div>';
}
那么您不需要自定义 jQuery 代码来包装内容。