Möchten Sie nach jedem Menüelement einen anderen Text hinzufügen

Ich möchte, dass meine Hauptnavigationsleiste Menüelemente mit einer sehr kurzen Beschreibung des Menüs unter dem Titel jedes Elements anzeigt.

Um dies zu tun, habe ich gehofft, einfach das ‘title’ Attribut des Menüpunktes in die ‘after’ function unten zu injizieren. Nicht ganz sicher, wie man das macht:

// the main menu function bones_main_nav() { // display the wp3 menu if available wp_nav_menu(array( 'container' => false, // remove nav container 'container_class' => 'menu clearfix', // class of container (should you choose to use it) 'menu' => __( 'The Main Menu', 'bonestheme' ), // nav name 'menu_class' => 'nav top-nav clearfix', // adding custom nav class 'theme_location' => 'main-nav', // where it's located in the theme 'before' => '', // before the menu 'after' => '', // after the menu 'link_before' => '', // before each link 'link_after' => '', // after each link 'depth' => 0, // limit the depth of the nav 'fallback_cb' => 'bones_main_nav_fallback' // fallback function )); } /* end bones main nav */ 

Ich mache mir auch Sorgen, dass dies die Drop-Down-functionalität beeinträchtigt. Jede Hilfe würde sehr geschätzt werden.

Solutions Collecting From Web of "Möchten Sie nach jedem Menüelement einen anderen Text hinzufügen"

Sie benötigen dafür einen Custom Walker .

In Ihrem Custom Walker definieren Sie den Anfang des Elements anders und fügen nach dem Link einen Bereich hinzu:

 class Walker_With_Title_Menu extends Walker_Nav_Menu { function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { $output .= sprintf( "\n
  • https://wordpress.stackexchange.com/questions/131521/want-to-add-different-text-after-each-menu-item/%shttps://wordpress.stackexchange.com/questions/131521/want-to-add-different-text-after-each-menu-item/%s
  • \n", $item->url, ( $item->object_id === get_the_ID() ) ? ' class="current"' : '', $item->title, $item->title //additional https://wordpress.stackexchange.com/questions/131521/want-to-add-different-text-after-each-menu-item/%s in the span that I added ); } }

    Wenn Sie etwas anderes dort geschrieben haben möchten, können Sie ein Feld in postmeta und es anstelle des Titels einfügen.

    wp_nav_menu Sie darauf, Ihr wp_nav_menu mit dem neuen Walker wp_nav_menu :

     wp_nav_menu(array( 'container' => false, // remove nav container 'container_class' => 'menu clearfix', // class of container (should you choose to use it) 'menu' => __( 'The Main Menu', 'bonestheme' ), // nav name 'menu_class' => 'nav top-nav clearfix', // adding custom nav class 'theme_location' => 'main-nav', // where it's located in the theme 'before' => '', // before the menu 'after' => '', // after the menu 'link_before' => '', // before each link 'link_after' => '', // after each link 'depth' => 0, // limit the depth of the nav 'fallback_cb' => 'bones_main_nav_fallback', // fallback function 'walker'=> new Walker_With_Title_Menu() // **Using your new walker** )); 

    Sie können dies nicht tun, wenn Sie wp_nav_menu direkt wp_nav_menu , da der after Parameter keine Variable zulässt, eine Zeichenfolge.