Skip to content

Instantly share code, notes, and snippets.

@joshuadavidnelson
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshuadavidnelson/cfc31e136bb07ab5ef80 to your computer and use it in GitHub Desktop.
Save joshuadavidnelson/cfc31e136bb07ab5ef80 to your computer and use it in GitHub Desktop.
Page Specific Sidebar in Genesis
<?php
/**
* Override the default sidebar in a Genesis Child Theme with the following code
*
* @author Joshua David Nelson, josh@joshuadnelson.com
*/
add_action( 'genesis_setup', 'child_theme_setup' );
function child_theme_setup() {
// Register New Sidebar
genesis_register_sidebar( array(
'id' => 'about-sidebar',
'name' => __( 'About Sidebar', 'child-domain' ),
'description' => __( 'The sidebar seen on the about page, as opposed to other pages', 'child-domain' ),
) );
// Page-Specific Sidebar
add_action( 'get_header', 'jdn_change_genesis_sidebar' );
}
// Set Page Specific Sidebar
function jdn_change_genesis_sidebar() {
if ( is_page('about') ) {
remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );
add_action( 'genesis_sidebar', 'jdn_do_specifc_sidebar' );
}
}
// Do Page Specific Sidebar
function jdn_do_specifc_sidebar() {
if ( is_page('about') && is_active_sidebar( 'about-sidebar' ) ) {
dynamic_sidebar( 'about-sidebar' );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment