ウィジェットがある(アクティブである)かどうかに応じて、 Wordpressでサイドバーを出力し、それに応じてショップページに表示しようとしています。
私はPHPにかなり慣れていないので、これまでに次のスクリプトを作成してこれを機能させようとしましたが、実際には発生していないようです。
shop.php:
<?php
/**
* The template for displaying the Shop page.
*/
get_header(); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php shop_content(); ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar('shop'); ?>
<?php get_footer(); ?>
sidebar-shop.php:
<?php
/**
* The sidebar containing the Shop page widget areas.
*
* If no active widgets are in the sidebars (Left, Right and theShop),
* the sidebars should be hidden completely.
*/
?>
<?php
// If the left, shop and right sidebars are inactive
if ( ! is_active_sidebar( 'right-sidebar' ) && ! is_active_sidebar( 'shop-sidebar' ) ) {
return;
}
// If there are active widgets in the Shop Sidebar
if ( is_active_sidebar( 'shop-sidebar' ) ) { ?>
<div id="secondary" class="widget-area" role="complementary">
<?php dynamic_sidebar( 'shop-sidebar' ); ?>
</div><!-- #secondary -->
<?php
}
// If there are active widgets in the Right Sidebar
elseif ( is_active_sidebar( 'right-sidebar' ) ) { ?>
<div id="secondary" class="widget-area" role="complementary">
<?php dynamic_sidebar( 'right-sidebar' ); ?>
</div><!-- #secondary -->
<?php
}
?>
sidebar.php:
<?php
/**
* The sidebar containing the main widget area.
*
* If no active widgets in sidebar, let's hide it completely.
*
*/
?>
<?php if ( is_active_sidebar( 'right-sidebar' ) ) : ?>
<div id="secondary" class="widget-area" role="complementary">
<?php dynamic_sidebar( 'right-sidebar' ); ?>
</div><!-- #secondary -->
<?php endif; ?>
上記のスクリプトを変更して、次のように出力するにはどうすればよいですか。
- 右側のサイドバー(右側のサイドバー)にウィジェットがある場合は、右側のサイドバーを表示します
- ショップサイドバー(ショップサイドバー)にウィジェットがある場合は、ショップサイドバーを表示します
- 右側のサイドバーとショップサイドバーの両方にウィジェットがある場合は、ショップサイドバーを表示します
- 右側のサイドバーにもショップのサイドバーにもウィジェットがない場合は、何も表示しないでください
ありがとうございました。