【问题标题】:Remove sidebar in Twenty Seventeen from single products in Woocommerce从 Woocommerce 中的单个产品中删除 27 中的侧边栏
【发布时间】:2018-10-28 20:10:48
【问题描述】:

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

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

但这不起作用。随后阅读另一个用户的帖子说 sn-p 不适用于二十七主题。

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

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

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

【问题讨论】:

    标签: php wordpress woocommerce sidebar twentyseventeen


    【解决方案1】:

    对于 27 岁主题,Woocommerce WC_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;
    }
    

    【讨论】:

    • 您好 LoicTheAztec,我刚刚意识到这对我不起作用。但只是将侧边栏内容推到了主页内容下方。无论是否将 css 更改为侧边栏宽度,它都会执行此操作。我想知道它是否会有所不同,因为商店侧边栏是我创建的自定义侧边栏,并将其作为条件标签拉入 sidebar.php(在编码之后,我想你几周前好心给了我!)。这会有所作为吗?
    • 这里是一个产品页面的链接,所以你可以明白我的意思。walsinghamgalleryandframing.co.uk/development/…
    • @SusanNeil 此代码适用于 Woocommerce 的普通 27 岁主题。我无法处理与之交互的任何自定义自定义。
    • 还不错。我已经用 css display:none 删除了侧边栏。感谢您的帮助
    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多