在单个产品页面上隐藏 Woocommerce 侧边栏

我是新来的。


我已经在我的 Woocommerce 商店页面上安装了一个侧边栏(在 woocommerce.php 文件中):


<main role="main" class="container row">

    <div class="col-md-2 filtersmargin">

        <?php

        if (is_active_sidebar('sidebar')) {

            dynamic_sidebar('sidebar');

        }

        ?> 

    </div>

    <div class="col-md-10">

        <div class="woocommerce">

            <?php woocommerce_content(); ?>

        </div>

    </main><!-- /.container -->

但是,这个侧边栏当然也会显示在单个产品页面上。问题只是在查看单个产品(尺寸、颜色等)时,我的侧边栏中的过滤器无关紧要,因此我想从那里删除它。过去,我使用 Google 的代码片段成功地做到了这一点(当时我没有创建自己的自定义主题,而是使用了 Astra),但现在我无法让它工作了。我怀疑这是由于我首先集成侧边栏的方式,但我不确定。


如果有人对我如何仅在单个产品页面上删除它有任何想法,那将不胜感激。



泛舟湖上清波郎朗
浏览 227回答 2
2回答

catspeake

一种方法是通过is_product()或is_singular('product')功能检查它是否是单个产品,以及它是否不是显示侧边栏。template另一种方法是从woocommerce插件根目录完全复制文件夹,并将其粘贴到主题/当前主题/woocommerce 中,然后自定义single-product.php文件。注意:您不需要复制所有文件。您只能复制需要自定义的文件(这里是single-product.php)。

慕运维8079593

您需要使用条件语句检查您所在的页面类型。您可以在此处找到更多功能和详细信息代码可能看起来像<main role="main" class="container row"><?php if (! is_product() ){&nbsp; //if not single product page ?><div class="col-md-2 filtersmargin">&nbsp; &nbsp; <?php&nbsp; &nbsp; if (is_active_sidebar('sidebar')) {&nbsp; &nbsp; &nbsp; &nbsp; dynamic_sidebar('sidebar');&nbsp; &nbsp; }&nbsp; &nbsp; ?>&nbsp;</div><div class="col-md-10"><?php }else{ // this depends on how you want your template to look ?>&nbsp; <div class="col-md-12"><?php } ?>&nbsp; &nbsp; <div class="woocommerce">&nbsp; &nbsp; &nbsp; &nbsp; <?php woocommerce_content(); ?>&nbsp; &nbsp; </div></main><!-- /.container -->如果您希望该列在单个产品页面上为空,您只需更改一行:if ( is_active_sidebar('sidebar') && ! is_product() ) {我不确定您正在编辑哪个模板文件,因此可能值得研究一下。旁注:如果您正在编辑 WooCommerce 插件中的文件,请记住最好将模板文件复制到您的主题/子主题中并以这种方式覆盖它们,这样您就可以在不丢失模板更改的情况下更新插件。
打开App,查看更多内容
随时随地看视频慕课网APP