为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
泛舟湖上清波郎朗 2022-07-29 10:14:02
我是新来的。我已经在我的 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),但现在我无法让它工作了。我怀疑这是由于我首先集成侧边栏的方式,但我不确定。如果有人对我如何仅在单个产品页面上删除它有任何想法,那将不胜感激。
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

一种方法是通过is_product()is_singular('product')功能检查它是否是单个产品,以及它是否不是显示侧边栏。

template另一种方法是从woocommerce插件根目录完全复制文件夹,并将其粘贴到主题/当前主题/woocommerce 中,然后自定义single-product.php文件。

注意:您不需要复制所有文件。您只能复制需要自定义的文件(这里是single-product.php)。


查看完整回答
反对 回复 2022-07-29
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

您需要使用条件语句检查您所在的页面类型。

您可以在此处找到更多功能和详细信息

代码可能看起来像

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

<?php if (! is_product() ){  //if not single product page ?>

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

    <?php

    if (is_active_sidebar('sidebar')) {

        dynamic_sidebar('sidebar');

    }

    ?> 

</div>

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

<?php }else{ // this depends on how you want your template to look ?>

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

<?php } ?>

    <div class="woocommerce">

        <?php woocommerce_content(); ?>

    </div>


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

如果您希望该列在单个产品页面上为空,您只需更改一行:


if ( is_active_sidebar('sidebar') && ! is_product() ) {

我不确定您正在编辑哪个模板文件,因此可能值得研究一下。


旁注:如果您正在编辑 WooCommerce 插件中的文件,请记住最好将模板文件复制到您的主题/子主题中并以这种方式覆盖它们,这样您就可以在不丢失模板更改的情况下更新插件。


查看完整回答
反对 回复 2022-07-29
  • 2 回答
  • 0 关注
  • 226 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信