Вопрос или проблема
Я смог добавить элементы меню с помощью этого выражения, но это создает плоское меню. Меню уже создано. Мне просто нужно добавить элементы.
wp_update_nav_menu_item(4, 0, array('menu-item-title' => __($post_title), 'menu-item-url' => home_url("https://wordpress.stackexchange.com/".$url."https://wordpress.stackexchange.com/"), 'menu-item-status' => 'publish'));
это супер просто в использовании. Как мне добавить элемент подменю?
Я нашел то, что искал, функция возвращает идентификатор нужного элемента меню.
$my_menu_id = wp_update_nav_menu_item(4, 0, array('menu-item-title' => __($my_menu_title), 'menu-item-url' => home_url("https://wordpress.stackexchange.com/".$url."https://wordpress.stackexchange.com/"), 'menu-item-parent-id' => $my_menu_id, 'menu-item-status' => 'publish'));
зная идентификатор меню, вы можете создавать подменю, привязанные к первому элементу меню, используя menu-item-parent-id
.
Ответ или решение
Для динамического добавления подпунктов меню в WordPress, вам необходимо использовать функцию wp_update_nav_menu_item()
, как вы уже делали для добавления обычных пунктов меню. Ключевым моментом для создания иерархии (т.е. подпунктов) является параметр menu-item-parent-id
, который позволяет указать родительский элемент для нового пункта меню.
Пошаговое руководство
1. Создание родительского пункта меню
Во-первых, убедитесь, что у вас уже есть родительский пункт меню, к которому вы хотите добавить подпункты. Используя ваш пример, предположим, что у вас есть ID меню, где вы добавляете элементы. Вот как вы можете создать родительский пункт меню:
$parent_item_id = wp_update_nav_menu_item(4, 0, array(
'menu-item-title' => __('Родительский пункт'),
'menu-item-url' => home_url('/parent-url'),
'menu-item-status' => 'publish'
));
В переменной $parent_item_id
теперь хранится ID только что созданного родительского пункта.
2. Добавление подпунктов
Теперь, когда у нас есть ID родительского пункта, мы можем приступить к добавлению подпунктов. Вы должны использовать параметр menu-item-parent-id
, чтобы указать созданный ранее родительский пункт:
$child_item_id = wp_update_nav_menu_item(4, 0, array(
'menu-item-title' => __('Подпункт 1'),
'menu-item-url' => home_url('/parent-url/child-url-1'),
'menu-item-status' => 'publish',
'menu-item-parent-id' => $parent_item_id // Указываем родительский ID
));
$child_item_id_2 = wp_update_nav_menu_item(4, 0, array(
'menu-item-title' => __('Подпункт 2'),
'menu-item-url' => home_url('/parent-url/child-url-2'),
'menu-item-status' => 'publish',
'menu-item-parent-id' => $parent_item_id // Указываем родительский ID
));
В этом примере мы добавляем два подпункта, которые будут вложены в родительский пункт меню.
3. Проверка структуры меню
После добавления элементов в меню можно проверить их структуру и корректность отображения на сайте. Для этого обновите страницу с меню в админке WordPress и убедитесь, что подпункты отображаются под родительским пунктом.
Заключение
Динамическое добавление подпунктов меню в WordPress является простым процессом, если использовать правильный подход с указанием menu-item-parent-id
. Этот метод позволяет создать разнообразные иерархические структуры меню, которые могут улучшить навигацию на сайте. Убедитесь также, что ваши URL-адреса корректны, и применяйте методы SEO-оптимизации для улучшения видимости вашего сайта в поисковых системах.