1

我一直在试图弄清楚如何从我的单个产品页面中删除商店侧边栏。我为此尝试了各种选择。我正在使用二十七主题。我首先在我的子函数文件中尝试了这个来自商业布卢默的片段。

 add_action( 'wp', 'bbloomer_remove_sidebar_product_pages' );

function bbloomer_remove_sidebar_product_pages() {
if ( is_product() ) {
remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
}
}

但这不起作用。随后阅读了另一个用户的帖子,说该片段不适用于二十七主题。

然后,我尝试通过在我的子主题中创建 woocommerce/singleproduct.php 并删除以下内容来覆盖 woocommerce 模板 woocommerce/templates/singleproduct.php:

 <?php
    /**
     * woocommerce_sidebar hook.
     *
     * @hooked woocommerce_get_sidebar - 10
     */
    do_action( 'woocommerce_sidebar' );
?>

这也不起作用。我在这里遗漏了一些明显的东西吗?如果有人对我做错了什么有一些见解,非常感谢。非常感谢。

4

1 回答 1

0

对于 27 岁主题,WoocommerceWC_Twenty_Seventeen中有一个特殊的类来处理侧边栏。

因此,请使用以下内容从单个产品页面中删除侧边栏:

remove_action( 'woocommerce_after_main_content', array( 'WC_Twenty_Seventeen', 'output_content_wrapper_end' ), 10 );
add_action( 'woocommerce_after_main_content', 'remove_sidebar_from_output_content_wrapper_end', 10 );
function remove_sidebar_from_output_content_wrapper_end() {
    // Only for single product pages
    if( is_product() ) {
        echo '</main></div></div>';
    } else {
        echo '</main></div>';
        get_sidebar();
        echo '</div>';
    }

}

代码位于活动子主题(或活动主题)的 function.php 文件中。测试和工作。

但是您必须在styles.css文件中添加一些 CSS 规则,例如:

.has-sidebar.single-product.woocommerce-page:not(.error404) #primary {
    width: 100% !important;
    float: none !important;
}
于 2018-10-28T12:03:18.510 回答