Create a sidebar for a specific page with the Genesis Framework, without a new template file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Override the default sidebar in a Genesis Child Theme with the following code | |
* | |
* @author Joshua David Nelson, [email protected] | |
*/ | |
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' ); | |
} | |
} |
Source: https://gist.github.com/joshuadavidnelson/cfc31e136bb07ab5ef80
Tags: Genesis, Page Template, Sidebar