do not show sidebars on WooCommerce pages

This commit is contained in:
Stef Kariotidis 2016-11-19 13:05:37 +02:00
parent 91b04484b0
commit 89bb11b0ea
2 changed files with 94 additions and 37 deletions

View File

@ -1,13 +1,52 @@
<?php <?php
$sidebar_pos = get_theme_mod('understrap_sidebar_position'); $sidebar_pos = get_theme_mod( 'understrap_sidebar_position' );
// On WooCommerce pages there is no need for sidebars as they leave
// too little space for WooCommerce itself. We check if WooCommerce
// is active and the current page is a WooCommerce page and we do
// not render sidebars.
$is_woocommerce = false;
$this_page_id = get_queried_object_id();
if ( class_exists( 'WooCommerce' ) ) {
if ( is_woocommerce() || is_shop() || get_option( 'woocommerce_shop_page_id' ) === $this_page_id ||
get_option( 'woocommerce_cart_page_id' ) == $this_page_id || get_option( 'woocommerce_checkout_page_id' ) == $this_page_id ||
get_option( 'woocommerce_pay_page_id' ) == $this_page_id || get_option( 'woocommerce_thanks_page_id' ) === $this_page_id ||
get_option( 'woocommerce_myaccount_page_id' ) == $this_page_id || get_option( 'woocommerce_edit_address_page_id' ) == $this_page_id ||
get_option( 'woocommerce_view_order_page_id' ) == $this_page_id || get_option( 'woocommerce_terms_page_id' ) == $this_page_id) {
$is_woocommerce = true;
}
}
?> ?>
<?php if ( 'left' === $sidebar_pos || 'both' === $sidebar_pos ): ?> <?php if ( 'left' === $sidebar_pos || 'both' === $sidebar_pos && !$is_woocommerce ) : ?>
<?php get_sidebar( 'left' ); ?> <?php get_sidebar( 'left' ); ?>
<?php endif; ?> <?php endif; ?>
<?php
if ( $is_woocommerce ) {
echo '<div class="col-md-12 content-area" id="primary">';
} else {
$html = '';
if ( 'right' === $sidebar_pos || 'left' === $sidebar_pos ) {
$html = '<div class="';
if ( is_active_sidebar( 'right-sidebar' ) || is_active_sidebar( 'left-sidebar' ) ) {
$html .= 'col-md-8 content-area" id="primary">';
} else {
$html .= 'col-md-12 content-area" id="primary">';
}
echo $html;
} elseif ( is_active_sidebar( 'right-sidebar' ) && is_active_sidebar( 'left-sidebar' ) ) {
$html = '<div class="';
if ( 'both' === $sidebar_pos ) {
$html .= 'col-md-6 content-area" id="primary">';
} else {
$html .= 'col-md-12 content-area" id="primary">';
}
echo $html;
}
}
?>
<?php if ( 'right' === $sidebar_pos || 'left' === $sidebar_pos ): ?>
<div class="<?php if ( is_active_sidebar( 'right-sidebar' ) || is_active_sidebar( 'left-sidebar' )) : ?>col-md-8<?php else : ?>col-md-12<?php endif; ?> content-area" id="primary">
<?php elseif ( is_active_sidebar( 'right-sidebar' ) && is_active_sidebar( 'left-sidebar' ) ): ?>
<div class="<?php if ( 'both' === $sidebar_pos ) : ?>col-md-6<?php else : ?>col-md-12<?php endif; ?> content-area" id="primary">
<?php endif; ?>

View File

@ -10,52 +10,70 @@
* @package understrap * @package understrap
*/ */
get_header(); get_header();
?> ?>
<?php <?php
$container = get_theme_mod('understrap_container_type'); $container = get_theme_mod( 'understrap_container_type' );
$sidebar_pos = get_theme_mod('understrap_sidebar_position'); $sidebar_pos = get_theme_mod( 'understrap_sidebar_position' );
// On WooCommerce pages there is no need for sidebars as they leave
// too little space for WooCommerce itself. We check if WooCommerce
// is active and the current page is a WooCommerce page and we do
// not render sidebars.
$is_woocommerce = false;
$this_page_id = get_queried_object_id();
if ( class_exists( 'WooCommerce' ) ) {
if ( is_woocommerce() || is_shop() || get_option( 'woocommerce_shop_page_id' ) === $this_page_id ||
get_option( 'woocommerce_cart_page_id' ) == $this_page_id || get_option( 'woocommerce_checkout_page_id' ) == $this_page_id ||
get_option( 'woocommerce_pay_page_id' ) == $this_page_id || get_option( 'woocommerce_thanks_page_id' ) === $this_page_id ||
get_option( 'woocommerce_myaccount_page_id' ) == $this_page_id || get_option( 'woocommerce_edit_address_page_id' ) == $this_page_id ||
get_option( 'woocommerce_view_order_page_id' ) == $this_page_id || get_option( 'woocommerce_terms_page_id' ) == $this_page_id) {
$is_woocommerce = true;
}
}
?> ?>
<div class="wrapper" id="page-wrapper"> <div class="wrapper" id="page-wrapper">
<div class="<?php echo $container?>" id="content" tabindex="-1"> <div class="<?php echo esc_html( $container ) ?>" id="content" tabindex="-1">
<div class="row"> <div class="row">
<!-- Do the left sidebar check -->
<?php get_template_part( 'global-templates/left-sidebar-check', 'none' ); ?>
<main class="site-main" id="main"> <!-- Do the left sidebar check -->
<?php get_template_part( 'global-templates/left-sidebar-check', 'none' ); ?>
<?php while ( have_posts() ) : the_post(); ?> <main class="site-main" id="main">
<?php get_template_part( 'loop-templates/content', 'page' ); ?> <?php while ( have_posts() ) : the_post(); ?>
<?php <?php get_template_part( 'loop-templates/content', 'page' ); ?>
// If comments are open or we have at least one comment, load up the comment template
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
?>
<?php endwhile; // end of the loop. ?> <?php
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
?>
</main><!-- #main --> <?php endwhile; // end of the loop. ?>
</div><!-- #primary --> </main><!-- #main -->
<!-- Do the right sidebar check --> </div><!-- #primary -->
<?php if ( 'right' === $sidebar_pos || 'both' === $sidebar_pos ): ?>
<?php get_sidebar( 'right' ); ?>
<?php endif; ?>
</div><!-- .row --> <!-- Do the right sidebar check -->
<?php if ( 'right' === $sidebar_pos || 'both' === $sidebar_pos ) : ?>
</div><!-- Container end --> <?php if ( !$is_woocommerce ) : get_sidebar( 'right' ); ?>
<?php endif; ?>
<?php endif; ?>
</div><!-- .row -->
</div><!-- Container end -->
</div><!-- Wrapper end --> </div><!-- Wrapper end -->