Intereting Posts
Показать содержимое WordPress в 3 столбцах Устранена проблема с заданной памятью Рекомендуемая ширина боковой панели / содержимого Два файла single.php? Имея проблемы с foreach внутри короткого кода с галереей ACF Редактирование массива / списка в Backend Список всех загруженных файлов на сетевых сайтах Продукты импорта XML WooCommerce Unserializeing несколько значений столбца, которые хранятся в одной переменной результатов базы данных Как импортировать столбец Excel в базу данных wordpress? Получение изображений / мультимедиа, прикрепленных к идентификатору страницы за страницей Как получить имя термина post meta value, которое равно термина id Уникальный пользователь для всех посетителей, но возможность прокомментировать с уникальным именем Сортировка и фильтрация изображения по тегам или категориям Добавьте фильтр несколько раз, используя только одну главную функцию

Добавить пользовательскую ссылку «на лету» в меню навигации

Мне нужно добавить пользовательские ссылки «на лету» в меню навигации. Я могу добавить пользовательские ссылки на первый уровень элементов (созданных через Appearance> Menus), но по какой-то причине я не могу добавить настраиваемую ссылку, потом создать дочерний элемент другой пользовательской ссылки.

Вот мой код:

function on_the_fly($items) { $menu_items = array(); foreach ($items as $item) { $item->menu_order = count($menu_items) + 1; $menu_items[] = $item; $new_menu_item = new \WP_Post((object) array( 'ID' => $item->ID . "00", )); $new_menu_item->post_author = 1; $new_menu_item->comment_status = 'closed'; $new_menu_item->ping_status = 'closed'; $new_menu_item->post_type = 'nav_menu_item'; $new_menu_item->post_title = 'test 1'; $new_menu_item->post_name = 'test 1'; $new_menu_item->filter = 'raw'; $new_menu_item->object_id = $new_menu_item->ID; $new_menu_item->object = 'custom'; $new_menu_item->type = 'custom'; $new_menu_item->type_label = 'Custom Link'; $new_menu_item->menu_order = count($menu_items) + 1; $new_menu_item->menu_item_parent = $item->ID; $new_menu_item->url = str_replace("//", "/", $item->url . "/" . sanitize_title('test 1')); $new_menu_item->title = 'test 1'; $menu_items[] = $new_menu_item; $new_menu_item_2 = new \WP_Post((object) array( 'ID' => $new_menu_item->ID . "00", )); $new_menu_item_2->post_author = 1; $new_menu_item_2->comment_status = 'closed'; $new_menu_item_2->ping_status = 'closed'; $new_menu_item_2->post_type = 'nav_menu_item'; $new_menu_item_2->post_title = 'test 2'; $new_menu_item_2->post_name = 'test 2'; $new_menu_item_2->filter = 'raw'; $new_menu_item_2->object_id = $new_menu_item->ID; $new_menu_item_2->object = 'custom'; $new_menu_item_2->type = 'custom'; $new_menu_item_2->type_label = 'Custom Link'; $new_menu_item_2->menu_order = count($menu_items) + 1; $new_menu_item_2->menu_item_parent = $new_menu_item->ID; $new_menu_item_2->url = str_replace("//", "/", $item->url . "/" . sanitize_title('test 2')); $new_menu_item_2->title = 'test 2'; $menu_items[] = $new_menu_item_2; } return $menu_items; } add_filter('wp_nav_menu_objects', 'on_the_fly', 1,1); 

Результат:

 > - Application > - test 1 > - test 2 

И не:

 > - Application > - test 1 > - test 2 

Как я могу достичь желаемого результата?