【问题标题】:How to hide sidebar only in woocommerce single-product page?如何仅在 woocommerce 单品页面中隐藏侧边栏?
【发布时间】:2019-08-26 17:19:15
【问题描述】:

我需要在 understrap 主题 https://understrap.com/ 中隐藏右侧边栏,仅在我的单个 woocommerce 产品页面中(不在商店中)。 通过删除 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 -->';
    }
}

该栏在其他页面中消失例如:“shop”(我不想这样做)。

你认为需要一个函数吗?有人已经解决了这个问题吗?

【问题讨论】:

    标签: php wordpress woocommerce wordpress-theming


    【解决方案1】:

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

    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 -->';
    }
    

    【讨论】:

    • 谢谢@itzmekhokan 工作正常!但是我有一个问题,当我在这个页面上插入代码时,我的页脚包装器会中断(屏幕 1:ibb.co/WxgqCsd)并成为一个容器,而它应该是全宽的。 (屏幕 2:ibb.co/G3KwYmn)。你有没有遇到过这种情况?
    • @p.perona,其实我从来没有用过这个主题。无论如何,我想通了并更新了我的代码。你能不能用你以前的替换它。
    猜你喜欢
    • 2020-05-08
    • 2020-07-28
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 2018-08-18
    • 2014-04-05
    相关资源
    最近更新 更多