我是新来的。
我已经在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),但是现在我无法使其工作了。我怀疑这是由于我首先集成了侧边栏的原因,但是我不确定。
如果有人对我如何仅在单个产品页面上将其删除有任何想法,将不胜感激。
答案 0 :(得分:2)
一种方法是通过is_product()
或is_singular('product')
函数检查它是否为单一产品,以及是否未显示侧边栏。
另一种方法是从 woocommerce 插件根目录完全复制template
文件夹,然后将其粘贴到 themes / current-theme / woocommerce 中,然后自定义{ {1}}文件。
注意:,您不需要复制所有文件。您只能复制需要自定义的文件(此处为single-product.php
)。
答案 1 :(得分:0)
您将希望使用条件语句来检查您所处的页面类型。
You can find more functions and details here
代码可能类似于
<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插件中的文件,请记住最好将模板文件复制到主题/子主题中,并以这种方式覆盖它们,以便您可以更新插件而不会丢失对模板的更改。 / p>