WordPress includes an easy to use mechanism for introducing customised navigation menus into a theme. In order to incorporate menu support into your theme, you need to add a few code segments to your theme files.
Register nav menu:
register_nav_menus()
register_nav_menu()
unregister_nav_menu()
Show nav menu:
has_nav_menu()
wp_nav_menu()
register_nav_menus (in functions.php page):
<?php
if ( ! function_exists( 'mytheme_register_nav_menu' ) ) {
function mytheme_register_nav_menu(){
register_nav_menus( array(
'primary_menu' => __( 'Primary Menu', 'Main Menu' ),
'footer_menu' => __( 'Footer Menu', 'Footer Menu' ),
) );
}
add_action( 'after_setup_theme', 'mytheme_register_nav_menu', 0 );
}
?>
OR
register_nav_menus( array(
'primary_menu ' => __( 'Primary Menu', 'Main Menu' ),
'footer_menu' => __( 'Footer Menu', 'Footer Menu' ),
) );
header.php (wp_nav_menu()):
<?php
wp_nav_menu( array( 'theme_location' => 'primary_menu' ) );
?>
<?php
wp_nav_menu( [
'theme_location' => 'primary_menu',
'menu_class' => 'nav pknav'
] );
?>
Create pages or category or custom links for showing this menu on frontend side.
Show all kinds of registed menu:
print_r (get_registered_nav_menus());
// Array ( [primary_menu] => Primary Menu
[footer_menu] => Footer Menu )