Я ищу лучшие методы WP для обработки мега большого меню. Мое меню навигации содержит около 400 ссылок, поэтому, если я создаю только одно меню, то это выглядит так уродливо … Я могу разделить его на многие подменю, но не знаю, как это сделать правильно.
Думая о создании главного меню и произносите 10 подменю. Это будет выглядеть намного лучше, но тогда как должен выглядеть мой PHP-скрипт? Теперь у меня есть этот скрипт:
<div class="col-md-12"> <?php wp_nav_menu( array( 'theme_location' => 'primary', 'container' => 'div', 'container_class' => 'navbar-collapse navbar-main-collapse', 'menu_class' => 'nav navbar-nav', 'fallback_cb' => 'wp_bootstrap_navwalker::fallback', 'walker' => new wp_bootstrap_navwalker()) ); ?> </div>
Заранее спасибо.
PS. Мое меню:
главное меню –
1. item-1 - sub-1 - subsub-1 * subsubsub-1....10 - subsub-2 .... * subsubsub-1....10 - subsub-20 * subsubsub-1....10 - sub-2 .... - subsub-1 * subsubsub-1....10 - subsub-2 .... * subsubsub-1....10 - subsub-20 ..... * subsubsub-1....10 - sub-10 - subsub-1 * subsubsub-1....10 - subsub-2 .... * subsubsub-1....10 - subsub-20 * subsubsub-1....10 2. item-2 - sub-1 - subsub-1 * subsubsub-1....10 - subsub-2 .... * subsubsub-1....10 - subsub-20 * subsubsub-1....10 - sub-2 .... 3. item-3 - sub-1 - subsub-1 * subsubsub-1....10 - subsub-2 .... * subsubsub-1....10 - subsub-20 * subsubsub-1....10 - sub-2 ....
С первого взгляда это кажется трудной задачей, но на самом деле даже у меня с небольшими навыками php можно решить эту проблему, просто добавив следующий код в мой собственный класс walker:
if ( $depth == 1 ) { // remove this statement if depth check is not required if (wp_get_nav_menu_object($item->title)) {// checking if item name matches to menu name $item_output .= wp_nav_menu( array('menu' => $item->title, 'container_class' => 'mgmenu_tabs_panels', 'menu_class' => '', 'menu_id' => 'section'. $item->ID, 'echo' => 0 )); } }
так просто. Этот скрипт будет проверять, соответствует ли какое-либо созданное имя меню подменю имени подменю, и когда они соответствуют сценарию, будут добавлены все элементы из этого подходящего меню.
В основном этот скрипт позволяет разделить любое большое меню на многие более мелкие.