Mam dodane ręcznie menu "Miasta menu"
Do tego kod, który ma dodawać automatycznie pozycje tego menu
  1.  
  2. add_action( 'init', 'menu' );
  3.  
  4. function menu() {
  5.  
  6. global $wpdb;
  7.  
  8. register_nav_menus(array(
  9. 'miasta_menu' => 'Miasta menu'
  10. ));
  11.  
  12. $menu_name = 'miasta_menu';
  13.  
  14. if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
  15.  
  16. $menu = wp_get_nav_menu_object( $locations[$menu_name] );
  17.  
  18. $menu_id = $menu->term_id;
  19.  
  20. $itemData = array();
  21.  
  22. $posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'miasto'");
  23.  
  24. foreach ($posts as $post ){
  25. $itemData = array(
  26. 'menu-item-db-id' => 0,
  27. 'menu-item-object-id' => $post->ID,
  28. 'menu-item-object' => 'Miasto',
  29. 'menu-item-type' => 'post_type',
  30. 'menu-item-parent-id' => 0,
  31. 'menu-item-position' => 1,
  32. 'menu-item-url' => home_url( '/' ),
  33. 'menu-item-description' => ' ',
  34. 'menu-item-attr-title' => '',
  35. 'menu-item-status' => 'publish',
  36. 'menu-item-target' => ''
  37. );
  38. wp_update_nav_menu_item($menu_id, $menu_item_db_id = 0, $itemData);
  39. }
  40. }
  41. }


Co tutaj jeszcze trzeba zrobić żeby menu się odświerzało po każdym wejściu na strone, bo w tej chwili to refresch przeglądarki nic nie daje.

Jak programowo można ustalać które menu ma być widoczne np w sytuacji gdy dodaje nowe przy użyciu funkcji wp_create_nav_menu()
to bym chciał żeby własnie to było po utworzeniu widoczne na stronie.