如何仅在woocommerce单一产品页面中隐藏侧边栏?

时间:2019-08-26 08:39:00

标签: php wordpress woocommerce wordpress-theming

我只需要在单个woocommerce产品页面(而不是在商店中)中隐藏Understrap主题https://understrap.com/中的右侧边栏。 通过删除woocommerce.php模板中的行(50-58):

if ( ! function_exists( 'understrap_woocommerce_wrapper_end' ) ) {
    function understrap_woocommerce_wrapper_end() {
        echo '</main><!-- #main -->';
        get_template_part( 'global-templates/right-sidebar-check' );
        echo '</div><!-- .row -->';
        echo '</div><!-- Container end -->';
        echo '</div><!-- Wrapper end -->';
    }
}

该栏在其他页面示例中消失:“购物”(我不想)。

您认为需要功能吗?有人解决了这个问题吗?

1 个答案:

答案 0 :(得分:1)

在活动主题的functions.php中添加以下代码段-

function remove_sidebar_single_product_page() {
    if ( is_product() ) {
        // for understrap theme
        remove_action( 'woocommerce_after_main_content', 'understrap_woocommerce_wrapper_end', 10 );
        // for default woocommerce structure
        remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
        // add wrapper end for single product
        add_action( 'woocommerce_after_main_content', 'understrap_woocommerce_wrapper_end_for_single_product', 11 );
    }
}
add_action( 'wp', 'remove_sidebar_single_product_page' );

function understrap_woocommerce_wrapper_end_for_single_product(){
    echo '</main><!-- #main -->';
    echo '</div><!-- .row -->';
    echo '</div><!-- Container end -->';
    echo '</div><!-- Wrapper end -->';
}