Intereting Posts
Как сделать многоколоночную интересную домашнюю страницу в Weaver 2010? Добавить дополнительное поле в пользовательский post_type Добавить общие действия отправки в пользовательскую мета-колонку Показывать только первого ребенка в выпадающем меню Захват значений из строки запроса для заполнения скрытых полей в формах ниндзя Столбцы нескольких категорий и список счетчиков посещений в wordpress Homepage Выберите пользователя, объединив несколько значений метаданных Сообщения WordPress сортируются по геолокации Изменение в медиа-библиотеке влияет на изображения в опубликованных статьях Лучший способ создать страницу за пределами списка страниц Доступ к одной странице с нескольких URL-адресов (подстановочный знак) Найти сообщения в соответствующей области таксономии Исключение front_page из условия страницы WordPress 3.3.1 не обрезает изображение Сохранение исходного размера изображения

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

Использование следующего или любого другого пользовательского метода 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 ); ?>