Can I add pages to my custom menu via script?

You can use wp_nav_menu_{$menu->slug}_items hook and add you link with a callback function, for example if your menu slug is header-menu then something like this:

add_filter('wp_nav_menu_header-menu_items', 'add_my_extra_links',10,2);
function add_my_extra_links($items, $args) {
  $newitems="<li><a title="Test Link" href="http://google.com">Google</a></li>";
  $newitems .= '<li><a title="Test Link" href="http://yahoo.com">Yahoo</a></li>';
  $newitems .= '<li><a title="Test Link" href="http://bing.com">Bing</a></li>';
  $newitems .= $items;
  return $newitems;
}

Update

I guess you would need to call wp_save_nav_menu_items which is the function used to save the menu items to the database.

Leave a Comment