对于像这样的小改动,不需要覆盖整个文件。首先尝试使用 WooCommerce 提供的钩子。您可以在您的主题functions.php 中执行此操作。这些函数在您的首页包装器中输出一个自定义包装器。
function start_wrapper_here() { // Start wrapper
echo '<div class="custom-wrapper">';
}
add_action( 'woocommerce_before_main_content', 'start_wrapper_here', 20 );
function end_wrapper_here() { // End wrapper
echo '</div>';
}
add_action( 'woocommerce_after_main_content', 'end_wrapper_here', 20 );
如果您想在所有 WooCommerce 页面上添加唯一的包装器,您可以通过向上述函数添加条件语句来实现。访问 WooCommerce 网站上的此页面以获取更多条件标签。
function start_wrapper_here() { // Start wrapper
if (is_shop()) { // Wrapper for the shop page
echo '<div class="shop-wrapper">';
} elseif (is_product_category()) { // Wrapper for a product category page
echo '<div class="product-category-wrapper">';
} elseif (is_product()) { // Wrapper for a single product page
echo '<div class="product-wrapper">';
}
}
add_action( 'woocommerce_before_main_content', 'start_wrapper_here', 20 );
不要忘记再次关闭它们。
function end_wrapper_here() { // End wrapper
if (is_shop()) {
echo '</div>';
} elseif (is_product_category()) {
echo '</div>';
} elseif (is_product()) {
echo '</div>';
}
}
add_action( 'woocommerce_after_main_content', 'end_wrapper_here', 20 );
如果您不想更改实际的首页包装器(默认值<div id="container">
:),您应该为此编辑 WooCommerce 函数。此函数通常wrapper-start.php
会wrapper-end.php
使用get_template_part()
. 我们现在覆盖这个函数并回显我们自己的包装器。
function woocommerce_output_content_wrapper() { // Start wrapper for all the page contents
echo '<div class="custom-wrapper">';
}
add_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 20 );
function woocommerce_output_content_wrapper_end() { // End wrapper for all the page contents
echo '</div>';
}
add_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 20 );