将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(,但现在我无法再让它工作了。我怀疑这是由于我首先集成侧边栏的方式,但我不确定。

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

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

另一种方法是从WooCommerce插件root中完全复制template文件夹,并将其粘贴到Themes/current-theme/woocommerce中,然后自定义single-product.php文件。

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

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

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

代码可能如下所示

<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 插件中的文件,请记住最好将模板文件复制到您的主题/子主题中并以这种方式覆盖它们,以便您可以更新插件而不会丢失对模板的更改。

相关内容

最新更新