Как вставить динамический пункт меню в определенное место?
Я могу поместить новый пункт меню в конец пунктов меню корневого уровня, используя это:
function bv_show_book_online_menu_item($items, $args) {
if(bv_can_book_online()) {
if($args->theme_location == 'main-menu') {
$items .= '<li><a href="/book/">Book Online</a></li>';
}
}
return $items;
}
add_filter('wp_nav_menu_items','bv_show_book_online_menu_item', 10, 2);
Но как я могу вставить этот предмет в любое место, где захочу? Я на самом деле хочу разместить его в середине подменю следующим образом:
Menu Item
Submenu Item
Submenu Item
<-- Insert new submenu item -->
Submenu Item
Submenu Item
Menu Item
Submenu Item
Submenu Item
Submenu Item
etc
1 ответ
Быстрое и грязное решение:
Установить плагин управления видимостью пунктов меню; это позволяет вам условно отображать пункты меню и подменю через страницу меню.
Добавьте свою собственную функцию "my_function" в functions.php или в свой собственный плагин функций сайта. Плагин должен возвращать TRUE, когда должно отображаться подменю.
На странице меню WP Dashboard выберите дополнительное подменю и добавьте это условное function_exists("my_function") && my_function()
в это поле видимости. Упрощенно: не падайте, если my_function
не может быть найден, и отображать это подменю только когда my_function
возвращает TRUE.
Я предполагаю, что этот плагин должен ОЦЕНИТЬ условное в поле видимости. Теоретически это небольшой риск для безопасности. Тем не менее, когда я проверял плагины много поддержки и обзоров (несколько месяцев назад), я не мог найти какие-либо вопросы, вызывающие беспокойство.
Если это беспокоит вас; затем вы можете найти нужный код из исходного кода плагина.