Irgendein Wanderer verursacht leeres Menü?

Die Verwendung des folgenden oder eines anderen benutzerdefinierten Walker_Nav_Menu scheint ein leeres Navigationsmenü zu verursachen. Ich habe versucht, den Standard anzugeben, um sicherzustellen, dass ich nicht verrückt werde, aber die Ausgabe immer noch ausblendet … Irgendwelche Ideen, was schief läuft?

 'primary', 'depth' => 3, 'walker' => new Walker_Nav_Menu() ) ); ?> 

Im Zusammenhang

 <?php /** * The Header for our theme. * * Displays all of the  section and everything up till 
* * @package Expound */ ?> <html > <meta charset="" /> <link rel="pingback" href="" /> <body >

Das obige ist derzeit in meiner header.php eines untergeordneten Themas, wenn das einen Unterschied macht, und das ursprüngliche Thema hat auch den Standardwanderer verwendet, wurde jedoch nicht explizit angegeben.

mit php wie oben

   

Gibt Fehler:

 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 

mit PHP als Standard im Theme gefunden

  'primary', 'depth' => 3) ); ?>  

Solutions Collecting From Web of "Irgendein Wanderer verursacht leeres Menü?"

Sie müssen sicherstellen, dass Ihr Menü ordnungsgemäß in Ihrer functions.php registriert und dann im WP Dashboard aktiviert ist.

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

Ansonsten hatte ich gerade eine lange Liste von leeren Aufzählungszeichen.

http://codex.wordpress.org/Navigation_Menus

Sie sollten ein tatsächliches Objekt als “Geher” übergeben – nicht im Handumdrehen. Der richtige Weg, es zu tun ist:

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

Stellen Sie außerdem sicher, dass Sie Walker_Nav_Menu in Ihrer benutzerdefinierten class erweitern.

Verwenden Sie das Walker-Menü für mobile Zwecke? Wenn ja, dann können Sie sich für eine andere Lösung entscheiden. (Nur wenn Sie Ihre Fehler nicht mit dem Walker-Menü beheben können)

Sie können das Hauptmenü auf Mobilgeräten ausblenden und ein anderes verwenden. Hier ist ein Beispiel

 
< ?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); ?> < ?php } ?>

Ich denke, das Problem ist, dass Sie versuchen, den Standard-Walker zu verwenden, aber indem Sie es im Walker-Feld deklarieren, indem Sie WordPress versuchen, einen benutzerdefinierten Walker zu laden, wird der Wp-Walker standardmäßig geladen, wenn er leer gelassen wird.

zwei Optionen:

1 / ändern 'walker' => new Walker_Nav_Menu() to 'walker' => '' wie es standardmäßig aufgerufen wird.

2 / editiere die Deklaration in einen neuen Namen wie: new themeslug_Walker_Nav_Menu () füge dann folgendes zu deiner function.php hinzu:


 class themeslug_walker_nav_menu erweitert Walker_Nav_Menu {

 // füge classn zu ul-Untermenüs hinzu
     function start_lvl (& $ output, $ depth) {
         // depthabhängige classn
         $ indent = ($ Tiefe> 0? str_repeat ("\ t", $ Tiefe): '');  // Codeeinzug
         $ display_depth = ($ Tiefe + 1);  // weil es das erste Untermenü als 0 zählt
         $ classes = Array (
             'Untermenü',
             ($ display_depth% 2? 'menu-ungerade': 'menu-even'),
             ($ display_depth> = 2? 'Sub-Untermenü': ''),
             'Menü-Tiefe-'.  $ display_depth
             );
         $ class_names = implode ('', $ classes);

         // baue html
         $ output. = "\ n".  $ Einzug  ''.  "\ n";
     }

     // füge Haupt- / Unterklassen zu Li's und Links hinzu
      function start_el (& $ output, $ item, $ depth, $ args) {
         global $ wp_query;
         $ indent = ($ Tiefe> 0? str_repeat ("\ t", $ Tiefe): '');  // Codeeinzug

         // depthabhängige classn
         $ depth_classes = Array (
             ($ depth == 0? 'Hauptmenü': 'Untermenü'),
             ($ depth> = 2? 'sub-sub-menu-item': ''),
             ($ depth% 2? 'menu-item-ungerade': 'menu-item-even'),
             'Menü-Item-Tiefe-'.  $ Tiefe
         );
         $ depth_class_names = esc_attr (implode ('', $ depth_classes));

         // classn bestanden
         $ classes = leer ($ item-> classes)?  array (): (array) $ item-> classes;
         $ class_names = esc_attr (implode ('', apply_filters ('nav_menu_css_class', array_filter ($ classes), $ item)));

         // baue html
         $ output. = $ Einzug.  'ICH WÜRDE .  "" class = "".  $ Tiefen_classn_Name.  ''.  $ classnnamen.  ""> ";

         // Verknüpfungsattribute
         $ Attribute =!  leer ($ item-> attr_title)?  'title = "'. esc_attr ($ item-> attr_title). '"': '';
         $ Attribute. =!  leer ($ item-> target)?  'target = "'. esc_attr ($ item-> target). '"': '';
         $ Attribute. =!  leer ($ item-> xfn)?  'rel =' '. esc_attr ($ item-> xfn).' '': '';
         $ Attribute. =!  leer ($ item-> url)?  'href = "'. esc_attr ($ item-> url). '"': '';
         $ attributes. = 'class = "menu-link'. ($ depth> 0? 'sub-menu-link': 'menu-link'). '"';

         $ item_output = sprintf ('% 1 $ s% 3 $ s% 4 $ s% 5 $ s% 6 $ s',
             $ args-> vorher,
             $ Attribute,
             $ args-> link_before,
             apply_filters ('the_title', $ item-> title, $ item-> ID),
             $ args-> link_after,
             $ args-> nach
         );

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

siehe den Codex erklärt es recht gut.

Manchmal passiert dies, wenn noch kein Menü erstellt wurde. Der Grund dafür, dass Sie die Walker_Nav_Menu class nicht verwenden oder erweitern Walker_Nav_Menu , liegt darin, dass das tatsächliche Menü, das Sie beim Aufruf des primary Navigationsmenüs ohne einen Walker aufrufen, tatsächlich der Fallback von wp_page_menu() . Damit dies mit einem Walker funktioniert, muss ein Menü erstellt und das Kontrollkästchen “Primär” aktiviert werden.

Custom_Nav_Walker put function.php Datei

 add_theme_support( 'nav-menus' ); class Custom_Nav_Walker extends Walker_Nav_Menu { function start_lvl(&$output, $depth = 0, $args = array()) { $output .= "\n
\n"; } function end_lvl(&$output, $depth = 0, $args = array()) { $output .= "\n
\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 .= "url)."\">".esc_attr($item->title).""; } elseif ($depth === 0) { $output .= "url)."\">".esc_attr($item->title).""; } elseif ($depth > 0) { $output .= "url)."\">".esc_attr($item->title).""; } }

nav_menu setze 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' => '
%3$s
', 'depth' => 0, 'walker' => new Custom_Nav_Walker() ); wp_nav_menu( $defaults ); ?>