Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_update_nav_menu_object [ WordPress Function ]

wp_update_nav_menu_object ( $menu_id = 0, $menu_data = array() )
Parameters:
  • (int) $menu_id The ID of the menu or "0" to create a new menu.
  • (array) $menu_data The array of menu data.
Returns:
  • (int|error) object The menu's ID or WP_Error object.
Defined at:



Save the properties of a menu or create a new menu with those properties.

Source


<?php
function wp_update_nav_menu_object$menu_id 0$menu_data = array() ) {
    
$menu_id = (int) $menu_id;

    
$_menu wp_get_nav_menu_object$menu_id );

    
$args = array(
        
'description' => ( isset( $menu_data['description'] ) ? $menu_data['description']  : '' ),
        
'name'        => ( isset( $menu_data['menu-name']   ) ? $menu_data['menu-name']    : '' ),
        
'parent'      => ( isset( $menu_data['parent']      ) ? (int) $menu_data['parent'] : 0  ),
        
'slug'        => null,
    );

    
// double-check that we're not going to have one menu take the name of another
    
$_possible_existing get_term_by'name'$menu_data['menu-name'], 'nav_menu' );
    if (
        
$_possible_existing &&
        ! 
is_wp_error$_possible_existing ) &&
        isset( 
$_possible_existing->term_id ) &&
        
$_possible_existing->term_id != $menu_id
    
)
        return new 
WP_Error'menu_exists'sprintf__('The menu name <strong>%s</strong> conflicts with another menu name. Please try another.'), esc_html$menu_data['menu-name'] ) ) );

    
// menu doesn't already exist, so create a new menu
    
if ( ! $_menu || is_wp_error$_menu ) ) {
        
$menu_exists get_term_by'name'$menu_data['menu-name'], 'nav_menu' );

        if ( 
$menu_exists )
            return new 
WP_Error'menu_exists'sprintf__('The menu name <strong>%s</strong> conflicts with another menu name. Please try another.'), esc_html$menu_data['menu-name'] ) ) );

        
$_menu wp_insert_term$menu_data['menu-name'], 'nav_menu'$args );

        if ( 
is_wp_error$_menu ) )
            return 
$_menu;

        
do_action'wp_create_nav_menu'$_menu['term_id'], $menu_data );

        return (int) 
$_menu['term_id'];
    }

    if ( ! 
$_menu || ! isset( $_menu->term_id ) )
        return 
0;

    
$menu_id = (int) $_menu->term_id;

    
$update_response wp_update_term$menu_id'nav_menu'$args );

    if ( 
is_wp_error$update_response ) )
        return 
$update_response;

    
do_action'wp_update_nav_menu'$menu_id$menu_data );
    return 
$menu_id;
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics