0

我正在使用二十七主题和 Woocommerce,并希望为我的 woo 商务页面设置一个自定义侧边栏,而不是在网站其他地方使用的默认主题侧边栏 (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 ?>

非常感谢您对此的任何建议!

4

2 回答 2

0

我以前用过这个插件,它会做你需要做的事情。它还将为您提供一种更简单的方法来添加更复杂的场景。

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

于 2018-10-06T12:07:55.580 回答
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; ?>
于 2018-10-06T08:09:45.837 回答