Одноуровневый вариант меню? Другой способ?


Я разрабатываю детскую тему Двадцати тринадцати лет для клиента. Моя тема содержит второе меню навигации, правильно зарегистрированное в моем файле functions.php.

Это второе навигационное меню полностью работает должным образом и так, как и ожидалось.

Однако, как часть моего дизайна, я хочу, чтобы это второе навигационное меню было "одноуровневым" меню, т.Е. Без дочерних элементов или подменю.

Я могу удалить любое появление дочерних пунктов меню с помощью CSS с помощью a display:none нацелен на соответствующий пункт .sub-menu в этом пользовательском меню.

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

Я искал в Google, SO, SE и на сайте Wordpress, но не могу найти выясните, как я могу заблокировать создание пунктов подменю на панели мониторинга. Проблема исследования зашла в тупик, потому что независимо от того, какие поисковые запросы я использую, я продолжаю находить сообщения о людях, имеющих противоположные проблемы... как создать подменю.

У меня уже есть собственная страница панели мониторинга для пользовательских параметров темы. Есть ли способ настроить экран редактирования меню только для этого одного меню? Крючок? Еще одна идея для форсирования одноуровневого меню?

Author: Sparky, 2014-01-10

1 answers

Это не совсем то, чего я хотел, но это очень близко.

Согласно кодексу для wp_nav_menu()...

$depth
( целое число) (необязательно) Сколько уровней иерархии должно быть включено, где 0 означает все. -1 отображает ссылки на любой глубине и упорядочивает их в единый плоский список.
По умолчанию: 0

Итак, я сделал это...

wp_nav_menu(
    array(
        'container_class' => 'menu-top-menu-container',
        'theme_location' => 'secondary',
        'depth' => -1 
    )
);

Я попытался 'depth' => 1 обозначить чистый одиночный уровень, однако это не мешает созданию элементы подменю на панели мониторинга. Конечный результат такой же, как у моего CSS-взлома. Администратор не будет знать, почему его новые элементы подменю не отображаются.

В итоге я использовал 'depth' => -1, который переводит все пункты меню на один уровень, включая любые элементы подменю, которые могут быть созданы. По крайней мере, администратор должен заметить, что здесь происходит, когда он видит, что его элемент подменю отображается на том же уровне, что и все остальное.

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

 1
Author: Sparky, 2014-01-10 18:12:57