Last active
December 18, 2015 01:59
-
-
Save rfmeier/5708096 to your computer and use it in GitHub Desktop.
Change menu is Genesis depending if the current user is logged in.
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 | |
// add the members menu through Genesis menu support | |
add_theme_support( 'genesis-menus', array( | |
'members' => __( 'Members Only Navigation', 'news' ), | |
) ); | |
// remove the default 'genesis_after_header' Genesis action callback | |
remove_action( 'genesis_after_header', 'genesis_do_nav' ); | |
// add custom 'genesis_after_header' Genesis action callback | |
add_action( 'genesis_after_header', 'custom_genesis_do_nav' ); | |
/** | |
* Callback for Genesis 'genesis_after_header' action. | |
* | |
* Display custom menu depending on status of current user. | |
* | |
* @package Genesis | |
* @category Menu | |
* @author Ryan Meier http://www.rfmeier.net/ | |
* | |
* @return none | |
*/ | |
function custom_genesis_do_nav(){ | |
// default menu id. Run through a filter for later use if needed | |
$current_menu = apply_filters( 'custom_default_primary_menu_id', 'primary' ); | |
// if user is logged in, set new menu id. Run through a filter for later use if needed | |
if( is_user_logged_in() ) | |
$current_menu = apply_filters( 'custom_loggedin_menu_id', 'members' ); | |
/** Do nothing if menu not supported */ | |
if ( ! genesis_nav_menu_supported( $current_menu ) ) | |
return; | |
/** If menu is assigned to theme location, output */ | |
if ( has_nav_menu( $current_menu ) ) { | |
$args = array( | |
'theme_location' => $current_menu, | |
'container' => '', | |
'menu_class' => genesis_get_option( 'nav_superfish' ) ? 'menu genesis-nav-menu menu-primary superfish' : 'menu genesis-nav-menu menu-primary', | |
'echo' => 0, | |
); | |
$nav = wp_nav_menu( $args ); | |
$pattern = genesis_markup( '<nav class="primary">%2$s%1$s%3$s</nav>', '<div id="nav">%2$s%1$s%3$s</div>', 0 ); | |
$nav_output = sprintf( $pattern, $nav, genesis_structural_wrap( 'nav', 'open', 0 ), genesis_structural_wrap( 'nav', 'close', 0 ) ); | |
echo apply_filters( 'genesis_do_nav', $nav_output, $nav, $args ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment