askdesign
11/14/2015 - 2:29 AM

Conditional display of Primary and Secondary Navigation Menus and Sidebars in Genesis

Sridhar Katakam

// To register and display a custom sidebar in Secondary Sidebar location for logged in users
//* Register Members only Secondary sidebar

genesis_register_sidebar( array(
	'id'          => 'members-secondary',
	'name'        => __( 'Secondary Sidebar (Members)', 'metro' ),
	'description' => __( 'This is the members only secondary sidebar.', 'metro' ),
) );

//* Show Members only custom Secondary sidebar in Secondary Sidebar location

add_action( 'genesis_after_header', 'sk_change_genesis_secondary_sidebar' );
function sk_change_genesis_secondary_sidebar() {

	if( is_user_logged_in() && is_active_sidebar( 'members-secondary' ) ) {

		// Remove the Secondary Sidebar from the Secondary Sidebar area.
		remove_action( 'genesis_sidebar_alt', 'genesis_do_sidebar_alt' );

		add_action( 'genesis_sidebar_alt', 'sk_do_sidebar_alt' );
	}

}

function sk_do_sidebar_alt() {

	dynamic_sidebar( 'members-secondary' );

}
// To register and display a custom sidebar in Primary Sidebar location for logged in users
//* Register Members only Primary sidebar

genesis_register_sidebar( array(
	'id'          => 'members-primary',
	'name'        => __( 'Primary Sidebar (Members)', 'metro' ),
	'description' => __( 'This is the members only primary sidebar.', 'metro' ),
) );

//* Show Members only custom Primary sidebar in Primary Sidebar location

add_action( 'genesis_after_header', 'sk_change_genesis_primary_sidebar' );
function sk_change_genesis_primary_sidebar() {

	if( is_user_logged_in() && is_active_sidebar( 'members-primary' ) ) {

		// Remove the Primary Sidebar from the Primary Sidebar area.
		remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );

		add_action( 'genesis_sidebar', 'sk_do_sidebar' );
	}

}

function sk_do_sidebar() {

	dynamic_sidebar( 'members-primary' );

}
// To display a custom menu named “Primary Navigation – Members” in Primary Navigation location and a custom menu named “Secondary Navigation – Members” for logged in users
// (Instead of the code in earlier section)
add_action( 'init', 'wpsites_members_menu' );
function wpsites_members_menu() {

	if( is_user_logged_in() ) {
		add_filter( 'wp_nav_menu_args', 'logged_in_nav_menu' );
	}

}

/**
* Display Different Nav Menu For Logged in Users
* @author Brad Dalton
* @example http://wpsites.net/web-design/members-nav-menu-logged-in-members/
*/

function logged_in_nav_menu( $args ) {
	if ( $args['theme_location'] == 'primary' ) {
		$args['menu'] = 'Primary Navigation - Members';
	}
	if ( $args['theme_location'] == 'secondary' ) {
		$args['menu'] = 'Secondary Navigation - Members';
	}
	return $args;
}
// https://sridharkatakam.com/conditional-display-primary-secondary-navigation-menus-sidebars-genesis/

// To display a custom menu named “Primary Navigation – Members” in Primary Navigation location for logged in users

add_action( 'init', 'wpsites_members_menu' );
function wpsites_members_menu() {

	if( is_user_logged_in() ) {
		add_filter( 'wp_nav_menu_args', 'logged_in_nav_menu' );
	}

}

/**
* Display Different Nav Menu For Logged in Users
* @author Brad Dalton
* @example http://wpsites.net/web-design/members-nav-menu-logged-in-members/
*/

function logged_in_nav_menu( $args ) {
	if ( $args['theme_location'] == 'primary' ) {
		$args['menu'] = 'Primary Navigation - Members';
	}
	return $args;
}