How to add a child item to a menu element (using wp_nav_menu_objects)

The WordPress functions changed since the answers here in 2014.

As of today (Version 4.6.1) this code will create a main menu named “My Menu” , main item and sub item.

To run code just paste and saves in your functions.php file in your child theme.

$menu_id = wp_create_nav_menu('My Menu');

$parent_item = wp_update_nav_menu_item($menu_id, 0, array(
    'menu-item-title' =>  __('Main Page'),
    'menu-item-url' => home_url( '/main-page/' ), 
    'menu-item-status' => 'publish', 
    )
);

wp_update_nav_menu_item($menu_id, 0, array(
    'menu-item-title' =>  __('Sub Item Page'),
    'menu-item-url' => home_url( '/sub-item-page/' ), 
    'menu-item-status' => 'publish', 
    'menu-item-parent-id' => $parent_item)
);

Docs:

Leave a Comment