【发布时间】:2015-04-08 13:03:50
【问题描述】:
使用内置的 WooCommerce 小部件“最近的产品”显示标题(文本),后跟产品的无序列表。令人惊讶的是,这两个主要元素(标题和列表)没有包装在任何容器中,因此难以设置样式、融入主题并最终难以使用。小部件菜单中也没有此选项。
还有什么方法可以包装我可能没有想到的吗?
【问题讨论】:
标签: woocommerce
使用内置的 WooCommerce 小部件“最近的产品”显示标题(文本),后跟产品的无序列表。令人惊讶的是,这两个主要元素(标题和列表)没有包装在任何容器中,因此难以设置样式、融入主题并最终难以使用。小部件菜单中也没有此选项。
还有什么方法可以包装我可能没有想到的吗?
【问题讨论】:
标签: woocommerce
WooCommerce 使用Filters 来帮助我们通过默认小部件覆盖 HTML 输出。
例如,WooCommerce Products,我相信您所指的就是使用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 -->';
}
如果您在边栏中使用小部件,您可以使用register_sidebar 函数的before_widget、after_widget、before_title 和after_title 参数。
【讨论】: