Редактирование существующих предварительно созданных меню в PHP

Вот мой маринован. Я использую скрипт для автоматического создания полностью заложенного сайта WordPress. В этом процессе автоматически создаются новые страницы и т. Д. Теперь мне нужен способ добавить вновь созданные страницы (ы) к существующему меню на сайте из сценария (это меню было создано автоматически по теме I нас и предварительно заполнено ссылками на некоторые демонстрационные страницы).

Скрипт имеет полный доступ ко всем функциям WordPress, но я не могу использовать hooks (так как все это выполняется до того, как сайт будет еще выше). Есть ли способ вытащить существующее меню в скрипт и изменить его содержимое?

EDIT : в отношении возможного дубликата в другой статье вы можете создать новое меню. Я нахожусь на рынке для восстановления и редактирования существующего меню, чтобы изменить его макет и добавить к нему элементы. 🙂

Заранее спасибо! 🙂

Solutions Collecting From Web of "Редактирование существующих предварительно созданных меню в PHP"

Я нашел решение своей проблемы, пересматривая документацию снова и снова, просматривая исходные файлы и обычно повторяя один и тот же раздел кода снова и снова, чтобы тщательно изучить вывод.

Это решение, с которым я столкнулся, который отлично подходит для моих нужд :

// Get a list of all the menus that are part of the site $menu_list = wp_get_nav_menus(); $menu_id = -1; // Iterate over all the menus... foreach( $menu_list as $menu ) { // ...and find the one you want... if( $menu->name === 'Main Menu' ) { // ...and get it's ID. $menu_id = $menu->term_id; } } // Delete everything except the Home entry $menu_content = wp_get_nav_menu_items( 'Main Menu' ); foreach( $menu_content as $menu_item ) { if($menu_item->title !== 'Home') { wp_delete_post($menu_item->ID); } } /* OTHER CODE USED FOR BUILDING PAGES, ETC CODE */ /** * Menu building code * * @since 0.4.0pre1 */ $menu_data = array( 'menu-item-title' => ( $menu_text !== '' ) ? wp_strip_all_tags( $menu_text ) : wp_strip_all_tags( $page_title ), 'menu-item-object' => 'page', 'menu-item-parent-id' => ( $parent !== '' || $parent !== 'none' ) ? intval( $parent ) : 0, 'menu-item-position' => ( $menu_position !== '' ) ? ( intval( $menu_position ) === 1 ? 2 : intval( $menu_position ) ): 2, 'menu-item-object-id' => $post_id, 'menu-item-type' => 'post_type', 'menu-item-status' => 'publish' ); // Add this menu item to the existing nav menu if it is set to visible if( intval( $menu_visible ) !== false ) { wp_update_nav_menu_item( $menu_id, 0, $menu_data ); } 

Не стесняйтесь предлагать какие-либо улучшения кода или любые другие предложения 🙂