使用内置的WooCommerce小部件“最近的产品”显示标题(文本),后跟无序的产品列表。令人惊讶的是,这两个主要元素(标题和列表)没有包装在任何容器中,因此难以设计风格,集成到主题中并最终难以使用。在小部件菜单中没有选项。
还有什么方法可以包装它们我可能还没有想过?
答案 0 :(得分:2)
WooCommerce利用Filters帮助我们覆盖默认小部件的HTML输出。
例如,我认为是WooCommerce Products的register_sidebar使用了woocommerce_before_widget_product_list
和woocommerce_after_widget_product_list
过滤器。您可以简单地挂钩函数并修改默认输出。像这样:
add_filter( 'woocommerce_before_widget_product_list', 'my_theme_before_widget_product_list', PHP_INT_MAX );
add_filter( 'woocommerce_after_widget_product_list', 'my_theme_after_widget_product_list', PHP_INT_MAX );
function my_theme_before_widget_product_list( $html ) {
return '<div class="my-theme-product-list">' . $html;
}
function my_theme_after_widget_product_list( $html ) {
return $html . '</div><!-- /.my-theme-product-list -->';
}
如果您在侧边栏中使用小部件,则可以使用{{3}}函数的before_widget
,after_widget
,before_title
和after_title
个参数。