Set a Sidebar to all posts of a Custom Post Type in Genesis
Simple Sidebars is a great plugin to use different sidebars on posts, pages, categories and tags in a Genesis theme.
You can set a certain sidebar to appear on all posts of a specific custom post type (CPT).
function themeprefix_remove_default_sidebar() { if ( get_post_type() == 'listing' ) { //set CPT here remove_action( 'genesis_sidebar', 'ss_do_sidebar' ); remove_action( 'genesis_sidebar', 'genesis_do_sidebar' ); add_action( 'genesis_sidebar', 'themeprefix_add_cpt_sidebar' ); } } //Alternative Sidebar function themeprefix_add_cpt_sidebar() { dynamic_sidebar( 'sidebar-listing' ); } add_action( 'genesis_before_sidebar_widget_area', 'themeprefix_remove_default_sidebar' ); //sets the ball rolling
Ok so we have 2 functions and an action, the bottom action triggers it all.
The first function themeprefix_remove_sidebar() selects what we are targetting, in this example it is a custom post type that is called ‘listing‘.
Then the Simple Sidebar and regular Genesis sidebar defaults are removed in the next 2 actions, the third action adds in the sidebar we want by calling the function below it.
In that function below – themeprefix_add_cpt_sidebar() the name/ID of the required sidebar is passed into the dynamic sidebar which will replace the sidebar for the desired content, category-sidebar in this example.