自定义侧边栏的Woocommerce条件标签是二十七主题

时间:2018-10-06 07:50:51

标签: woocommerce sidebar twentyseventeen

我正在使用27个主题和Woocommerce,并希望为我的woo Commerce页面有一个自定义侧边栏,而不是将在网站上的其他地方使用的默认主题侧边栏(sidebar-1)。

因此,在子主题的functions.php中,我注册了自定义边栏(sidebar-6),并在其中填充了小部件,并尝试在子主题的sidebar.php中用woo Commerce条件标签对其进行调用

我对条件标签还是陌生的,尽管在各种在线站点上都遵循了建议,但到目前为止还无法使它生效。如果有人可以为此指出我正确的方向,我将不胜感激。

原始主题sidebar.php看起来像这样

if ( ! is_active_sidebar( 'sidebar-1' ) ) {
return;
}
?>

<aside id="secondary" class="widget-area" role="complementary" 
aria-label="<?php esc_attr_e( 'Blog Sidebar', 'twentyseventeen' ); 
?>">
<?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside><!-- #secondary -->

我已经尝试了各种代码组合来尝试完成这项工作,但到目前为止都失败了。这是我目前拥有的,并且导致任何页面上都没有显示侧栏。

if ( is_woocommerce() ) : {
return;
}
?>

<aside id="secondary" class="widget-area" role="complementary" 
aria-label="<?php esc_attr_e( 'Shop Sidebar', 'twentyseventeen' );    
?>">
<?php dynamic_sidebar( 'sidebar-6' ); ?>
</aside><!-- #secondary -->


<?php else:
return;
}

?>
<aside id="secondary" class="widget-area" role="complementary" 
aria-label="<?php esc_attr_e( 'Blog Sidebar','twentyseventeen');         
?>">
<?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside><!-- #secondary -->
<?php endif ?>

非常感谢您的任何建议!

2 个答案:

答案 0 :(得分:0)

您在以下情况下有误:

if ( is_woocommerce() ) : {
return;
  }

基本上,您是在说Woocommerce页面是否返回并且什么也不做。

这是正确的一个:

if ( is_woocommerce() && is_active_sidebar( 'sidebar-6' ) ) :?>
<aside id="secondary" class="widget-area" role="complementary" 
aria-label="
    <?php esc_attr_e( 'Shop Sidebar', 'twentyseventeen' ); ?>">
    <?php dynamic_sidebar( 'sidebar-2' ); ?>
</aside><!-- #secondary -->
    <?php
    elseif ( is_active_sidebar( 'sidebar-1' ) ) :
        ?>
<aside id="secondary" class="widget-area" role="complementary" 
aria-label="<?php esc_attr_e( 'Blog Sidebar', 'twentyseventeen' ); ?>">
        <?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside><!-- #secondary -->
<?php endif; ?>

答案 1 :(得分:0)

我以前使用过此插件,它将完全按照您的要求进行操作。它还将为您提供一种添加更复杂方案的简便方法。

https://en-gb.wordpress.org/plugins/custom-sidebars/