Snippet: How to Change The Main Menu Location Conditionally
In the Total theme the main header menu by default uses the "main_menu" location. However, you can easily alter the default location using the "wpex_main_menu_location" filter. This can be useful if you want to define a new menu location via the wp_register_nav_menu function and conditionally display it in your header. Below is an example snippet. However, if what you want to do is alter the main_menu menu ID you can do so as well but you would want to instead use the "totaltheme/header/menu/wp_menu" filter.
// Define new menu location for WooCommerce pages
add_action( 'after_setup_theme', function() {
register_nav_menu( 'woocommerce', __( 'WooCommerce Menu', 'total' ) );
} );
// Alter Main Menu Location Via Hook
add_filter( 'totaltheme/header/menu/theme_location', function( $location ) {
// Display "woocommerce" menu location for woocommerce pages
if ( function_exists( 'is_woocommerce' ) && is_woocommerce() ) {
return 'woocommerce';
}
// Return location
return $location;
} );
All PHP snippets should be added via child theme's functions.php file or via a plugin.
We recommend Code Snippets (100% Free) or WPCode (sponsored)
We recommend Code Snippets (100% Free) or WPCode (sponsored)