Hide a Sidebar on Selected Pages or Post Types
Empties a widget area on the pages or post types you choose, for example to keep the sidebar off landing pages and checkout pages.
Opens WPIDE on
Code
// ID of the widget area to hide.
$wpide_hidden_sidebar = 'sidebar-1';
// Page or post IDs where it is hidden.
$wpide_hide_sidebar_ids = array( 0 );
// Post types whose single views hide it, for example array( 'page' ).
$wpide_hide_sidebar_types = array();
add_filter( 'sidebars_widgets', function ( $sidebars ) use ( $wpide_hidden_sidebar, $wpide_hide_sidebar_ids, $wpide_hide_sidebar_types ) {
if ( is_admin() || ! isset( $sidebars[ $wpide_hidden_sidebar ] ) || ! did_action( 'wp' ) ) {
return $sidebars;
}
$hide = is_singular() && in_array( get_queried_object_id(), array_map( 'absint', $wpide_hide_sidebar_ids ), true );
if ( ! $hide && $wpide_hide_sidebar_types && is_singular( $wpide_hide_sidebar_types ) ) {
$hide = true;
}
if ( $hide ) {
$sidebars[ $wpide_hidden_sidebar ] = array();
}
return $sidebars;
} );
Notes
Set the sidebar ID (shown in Appearance > Widgets or your theme's code). Some themes still reserve the column; switch those pages to a full-width template if so.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.