我将店面主题用于woocommerce,我想在商店页面中创建自定义布局。
这个自定义布局没有产品缩略图,标题和价格必须在同一个div中,这样我就可以轻松地用css对其进行自定义。
然而,当我试图在h2标签中获得价格时,它并没有达到我预期的结果。它出现在标题上方和自定义分区之外。我做错了什么?
参考图片
remove_action( \'woocommerce_shop_loop_item_title\', \'woocommerce_template_loop_product_title\', 10 );
add_filter( \'woocommerce_shop_loop_item_title\' , \'custom_woocommerce_template_loop_product_title\', 10);
function custom_woocommerce_template_loop_product_title () {
echo \'
<div class="custom-title-wrapper">
<h1 class="woocommerce-loop-product__title custom-loop-product-title">\' . get_the_title() . \'</h1>
<h2>\' . woocommerce_template_loop_price() . \'</h2>
</div>\'
;
}
最合适的回答,由SO网友:user165319 整理而成
它出现在标题上方和自定义分区之外。我做错了什么?
这是因为woocommerce_template_loop_price()
回显输出。
所以要解决问题,只需使用?> HTML here <?php
而不是echo \'HTML here\';
:
function custom_woocommerce_template_loop_product_title() {
?>
<div class="custom-title-wrapper">
<h1 class="woocommerce-loop-product__title custom-loop-product-title"><?php the_title(); ?></h1>
<h2><?php woocommerce_template_loop_price(); ?></h2>
</div>
<?php
}
而且(虽然这不是一个大问题),您应该使用
add_action()
而不是
add_filter()
因为
woocommerce_shop_loop_item_title
是操作而不是筛选器:
add_action( \'woocommerce_shop_loop_item_title\', \'custom_woocommerce_template_loop_product_title\', 10 );