Intereting Posts
Как создать динамическое значение в WP_Query meta_query Как использовать фильтр? Переместите ссылку «Меню» из «Внешний вид»> «Меню» на свою вкладку в левой колонке «Панель управления» Количество таксономии за тип сообщения Отображение пользовательских почтовых таксономий Исключить последнее сообщение из цикла termoconomy WP_Query fetch_feed работает на localhost, но не на сервере Как ограничить роли редактора WordPress определенной категорией? Укажите пункты подменю Admin? Ограничить количество страниц, использующих определенный шаблон? quicktags "link" кнопка не работает, но все остальные кнопки делают Вывести текст перед категорией Как запустить WP_Query для извлечения вложений в сообщения только из определенной категории? get_posts () и WP_query ограничивает условия «И» максимум до 6 для запросов метаданных в WordPress Пользовательская форма входа с сайта WordPress на сайт без WordPress

Любой ходок вызывает пустое меню?

Использование следующего или любого другого пользовательского метода Walker_Nav_Menu, похоже, вызывает пустую навигацию, я попробовал указать значение по умолчанию, чтобы убедиться, что я не схожу с ума, но он все еще заполняет вывод … Любые идеи о том, что происходит не так?

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'depth' => 3, 'walker' => new Walker_Nav_Menu() ) ); ?> 

В контексте

 <?php /** * The Header for our theme. * * Displays all of the <head> section and everything up till <div id="main"> * * @package Expound */ ?><!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?php wp_title( '|', true, 'right' ); ?></title> <link rel="profile" href="http://gmpg.org/xfn/11" /> <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" /> <!--[if lt IE 9]> <script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script> <![endif]--> <?php wp_head(); ?> </head> <body <?php body_class(); ?>> <div id="page" class="hfeed site"> <?php do_action( 'expound_header_before' ); ?> <header id="masthead" class="site-header" role="banner"> <div class="site-branding"> <div class="site-title-group"> <a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"> <!--div class="site-title"><!--?php bloginfo( 'name' ); ?></div--> <img height="240" width="722" alt="The All Australian Minecraft Community" class="wp-post-image" src="http://img.wordpressask.com/theme-development/logo.png"> <!--h2 class="site-description"--><!--?php bloginfo( 'description' ); ?--><!--/h2--> <!--div id="sub-title"> <div id="sub-title-image"></div> </div--> </a> </div> </div> <div class = "site-title-group"> <?php if ( dynamic_sidebar('header_widget_area') ) : else : endif; ?> </div> <nav id="site-navigation" class="navigation-main" role="navigation"> <h1 class="menu-toggle"><?php _e( 'Menu', 'expound' ); ?></h1> <div class="screen-reader-text skip-link"><a href="#content" title="<?php esc_attr_e( 'Skip to content', 'expound' ); ?>"><?php _e( 'Skip to content', 'expound' ); ?></a></div> #################################################################################### <?php wp_nav_menu( array( 'theme_location' => 'primary', 'depth' => 3, 'walker' => new Walker_Nav_Menu()) ); ?> #################################################################################### <div class="site-nav-search"><?php if ( dynamic_sidebar('navigation_widget_area') ) : else : endif; ?></div> <?php do_action( 'expound_navigation_after' ); ?> </nav><!-- #site-navigation --> </header><!-- #masthead --> <?php do_action( 'expound_header_after' ); ?> <div id="main" class="site-main"> 

Вышеприведенное в настоящее время находится в моей header.php дочерней темы, если это имеет какое-то значение, а в исходной теме также использовался ходок по умолчанию, однако это явно не указано.

с php, как указано выше

  <div class="menu"> <ul class=" nav-menu"> <li class="current_page_item"> <a href="http://taamc.com/">Home</a> </li> <li id="menu-item-21" class="menu-item-21"> <a></a> </li> <li id="menu-item-87" class="menu-item-87"> <a></a> </li> <li id="menu-item-122" class="menu-item-122"> <a></a> </li> <li id="menu-item-28" class="menu-item-28"> <a></a> </li> <li id="menu-item-127" class="menu-item-127"> <a></a> </li> <li id="menu-item-22" class="menu-item-22"> <a></a> </li> </ul> </div> 

Дает ошибки:

 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 148 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 153 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 148 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 153 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 148 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 153 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 148 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 153 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 148 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 153 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 148 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 151 Notice: Trying to get property of non-object in /home/taamc/public_html/wordpress/wp-includes/nav-menu-template.php on line 153 

с php, найденным по умолчанию в теме

 <?php wp_nav_menu( array( 'theme_location' => 'primary', 'depth' => 3) ); ?> <div class="menu"> <ul class=" nav-menu"> <li class="current_page_item"> <a href="http://taamc.com/">Home</a> </li> <li class="page_item page-item-21"> <a href="http://taamc.com/activity/">Activity</a> </li> <li class="page_item page-item-87"> <a href="http://taamc.com/gallery/">Gallery</a> </li> <li class="page_item page-item-122"> <a href="http://taamc.com/getting-started/">Getting Started</a> </li> <li class="page_item page-item-28"> <a href="http://taamc.com/groups/">Groups</a> </li> <li class="page_item page-item-127"> <a href="http://taamc.com/map/">Map</a> </li> <li class="page_item page-item-22"> <a href="http://taamc.com/members/">Members</a> </li> </ul> </div> 

Solutions Collecting From Web of "Любой ходок вызывает пустое меню?"

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

 add_action( 'init', register_nav_menu( 'navigation', __( 'Navigation' ) ) ); 

В противном случае я просто столкнулся с длинным списком пустых пунктов.

http://codex.wordpress.org/Navigation_Menus

Вы должны передать фактический объект в качестве «ходока» – не создавать его «на лету». Правильный способ сделать это:

 $myWalker = new Walker_Nav_Menu(); wp_nav_menu( array( 'theme_location' => 'primary', 'depth' => 3, 'walker' => $myWalker ) ); ?> 

Также убедитесь, что вы добавили Walker_Nav_Menu в свой собственный класс.

используете ли вы ходовое меню для мобильных целей? Если да, тогда вы можете пойти на другое решение. (Только если вы не можете исправить свои ошибки в меню ходока)

вы можете скрыть основное меню на мобильных устройствах и использовать другое. вот пример

 <div class="m-sec-nav"> <?php $menu_name = 'careers-menu'; //your menu theme_location if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) { $menu = wp_get_nav_menu_object( $locations[ $menu_name ] ); $menu_items = wp_get_nav_menu_items($menu->term_id); ?> <select onchange="location = this.options[this.selectedIndex].value;"> <?php foreach ( (array) $menu_items as $key => $menu_item ) { ?> <option value="<?php echo $menu_item->url; ?>"><?php echo $menu_item->title; ?></option> <?php } ?> </select> <?php } ?> </div> 

Я думаю, что проблема целого заключается в том, что вы пытаетесь использовать ходок по умолчанию, но, объявив его в поле ходока, скажем, что вы пытаетесь загрузить пользовательский ходок, wp walker загружается по умолчанию, если он оставлен пустым.

два варианта:

1 / change 'walker' => new Walker_Nav_Menu() to 'walker' => '' по умолчанию.

2 / изменить объявление на новое имя, например: new themeslug_Walker_Nav_Menu (), а затем добавить в свой файл function.php следующее:


 class themeslug_walker_nav_menu extends Walker_Nav_Menu {

 // добавление классов в подменю ul
     function start_lvl (& $ output, $ depth) {
         // классы, зависимые от глубины
         $ indent = ($ depth> 0? str_repeat ("\ t", $ depth): '');  // код отступа
         $ display_depth = ($ depth + 1);  // потому что он считает первое подменю равным 0
         $ classes = array (
             «Подменю»,
             ($ display_depth% 2? 'menu-odd': 'menu-even'),
             ($ display_depth> = 2? 'под-меню': ''),
             'menu-depth-'.  $ display_depth
             );
         $ class_names = implode ('', $ classes);

         // build html
         $ output. = "\ n".  $ indent.  ''.  "\ П";
     }

     // добавление основных / подклассов в li и ссылки
      function start_el (& $ output, $ item, $ depth, $ args) {
         глобальный $ wp_query;
         $ indent = ($ depth> 0? str_repeat ("\ t", $ depth): '');  // код отступа

         // классы, зависимые от глубины
         $ depth_classes = массив (
             ($ depth == 0? 'main-menu-item': 'sub-menu-item'),
             ($ depth> = 2? 'под-под-меню-item': ''),
             ($ depth% 2? 'menu-item-odd': 'menu-item-even'),
             'menu-item-depth-'.  $ глубина
         );
         $ depth_class_names = esc_attr (implode ('', $ depth_классы);

         // пройдены классы
         $ classes = empty ($ item-> classes)?  array (): (array) $ item-> classes;
         $ class_names = esc_attr (implode ('', apply_filters ('nav_menu_css_class', array_filter ($ classes), $ item)));

         // build html
         $ output. = $ indent.  'Я БЫ .  '"class ="'.  $ depth_class_names.  ''.  $ class_names.  '">';

         // ссылки на атрибуты
         $ attributes =!  empty ($ item-> attr_title)?  'title = "'. esc_attr ($ item-> attr_title). '"': '';
         $ attributes. =!  empty ($ item-> target)?  'target = "'. esc_attr ($ item-> target). '"': '';
         $ attributes. =!  empty ($ item-> xfn)?  'rel = "'. esc_attr ($ item-> xfn). '"': '';
         $ attributes. =!  empty ($ item-> url)?  'href = "'. esc_attr ($ item-> url). '"': '';
         $ attributes. = 'class = "menu-link'. ($ depth> 0? 'под-меню-ссылка': 'main-menu-link'). '"';

         $ item_output = sprintf ('% 1 $ s% 3 $ s% 4 $ s% 5 $ s% 6 $ s',
             $ Args-> перед тем,
             $ атрибуты,
             $ Args-> link_before,
             apply_filters ('the_title', $ item-> title, $ item-> ID),
             $ Args-> link_after,
             $ Args-> после
         );

         // build html
         $ output. = apply_filters ('walker_nav_menu_start_el', $ item_output, $ item, $ depth, $ args);
     }
 }

см. в кодексе его объяснения довольно хорошо.

Иногда это происходит, когда меню еще не создано. Причина, по которой вы не можете использовать или расширить класс Walker_Nav_Menu состоит в том, что фактическое меню, которое вы видите при вызове primary навигационного меню без ходунки, на самом деле является резервным для wp_page_menu() . Для этого, чтобы работать с ходоком, необходимо создать меню и установить флажок Первичный.

Custom_Nav_Walker поместить файл function.php

 add_theme_support( 'nav-menus' ); class Custom_Nav_Walker extends Walker_Nav_Menu { function start_lvl(&$output, $depth = 0, $args = array()) { $output .= "\n<div class=\"submenu\">\n"; } function end_lvl(&$output, $depth = 0, $args = array()) { $output .= "\n</div>\n"; } function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) { parent::start_el( $item_html, $item, $depth, $args ); if ( $item->is_dropdown && ( $depth === 0 ) ) { $output .= "<a href=\"".esc_url($item->url)."\">".esc_attr($item->title)."</a>"; } elseif ($depth === 0) { $output .= "<a href=\"".esc_url($item->url)."\">".esc_attr($item->title)."</a>"; } elseif ($depth > 0) { $output .= "<a href=\"".esc_url($item->url)."\">".esc_attr($item->title)."</a>"; } } 

nav_menu поставить header.php

 <?php $defaults = array( 'theme_location' => '', 'menu' => 'Project Nav', //menu name 'container' => false, 'container_class' => ' ', 'container_id' => '', 'menu_class' => 'nav', 'menu_id' => '', 'echo' => true, 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '<div id="%1$s" class="%2$s">%3$s</div>', 'depth' => 0, 'walker' => new Custom_Nav_Walker() ); wp_nav_menu( $defaults ); ?>