Vertrauenswürdige WordPress-Tutorials, wenn Sie sie am dringendsten benötigen.
Anfängerleitfaden für WordPress
WPB Cup
25 Millionen+
Websites, die unsere Plugins verwenden
16+
Jahre WordPress-Erfahrung
3000+
WordPress-Tutorials von Experten

So fügen Sie Menü-Beschreibungen in Ihre WordPress-Themes ein

Das WordPress-Menüsystem verfügt über eine integrierte Funktion, mit der Sie Beschreibungen zu Menüpunkten hinzufügen können. Diese Funktion ist jedoch standardmäßig ausgeblendet. Selbst wenn sie aktiviert ist, wird die Anzeige ohne zusätzlichen Code nicht unterstützt. Die meisten Themes sind nicht für Menüpunktbeschreibungen konzipiert. In diesem Artikel zeigen wir Ihnen, wie Sie Menübeschreibungen in WordPress aktivieren und wie Sie Menübeschreibungen in Ihren WordPress-Themes hinzufügen.

So fügen Sie Menübeschreibungen in WordPress-Themes hinzu

Hinweis: Dieses Tutorial erfordert ein gutes Verständnis von HTML, CSS und der Entwicklung von WordPress-Themes.

Wann und warum Sie Menü-Beschreibungen hinzufügen möchten?

Manche Benutzer glauben, dass das Hinzufügen von Menübeschreibungen für SEO hilfreich ist. Wir glauben jedoch, dass der Hauptgrund, warum Sie sie verwenden möchten, darin besteht, ein besseres Benutzererlebnis auf Ihrer Website zu bieten.

Beschreibungen können verwendet werden, um Besuchern mitzuteilen, was sie finden, wenn sie auf einen Menüpunkt klicken. Eine ansprechende Beschreibung wird mehr Benutzer dazu verleiten, auf Menüs zu klicken.

Menü-Beschreibungen

Schritt 1: Menübeschreibungen aktivieren

Gehen Sie zu Darstellung » Menüs. Klicken Sie oben rechts auf der Seite auf die Schaltfläche Bildschirmoptionen. Aktivieren Sie das Kontrollkästchen Beschreibungen.

Menübeschreibungen in WordPress aktivieren

Dies aktiviert das Beschreibungsfeld in Ihren Menüelementen. So:

Beschreibungsfeld zu Menüpunkten hinzugefügt

Jetzt können Sie Ihren Menüpunkten in Ihrem WordPress-Menü Beschreibungen hinzufügen. Diese Beschreibungen werden jedoch noch nicht in Ihren Themes angezeigt. Um Menübeschreibungen anzuzeigen, müssen wir etwas Code hinzufügen.

Schritt 2: Fügen Sie die Walker-Klasse hinzu:

Die Walker-Klasse erweitert die bestehende Klasse in WordPress. Sie fügt im Grunde nur eine Codezeile hinzu, um Beschreibungen von Menüpunkten anzuzeigen. Fügen Sie diesen Code in die Datei functions.php Ihres Themes ein.

class Menu_With_Description extends Walker_Nav_Menu {
	function start_el(&$output, $item, $depth, $args) {
		global $wp_query;
		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
		
		$class_names = $value = '';

		$classes = empty( $item->classes ) ? array() : (array) $item->classes;

		$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
		$class_names = ' class="' . esc_attr( $class_names ) . '"';

		$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $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 ) .'"' : '';

		$item_output = $args->before;
		$item_output .= '<a'. $attributes .'>';
		$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
		$item_output .= '<br /><span class="sub">' . $item->description . '</span>';
		$item_output .= '</a>';
		$item_output .= $args->after;

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

Schritt 3. Walker in wp_nav_menu aktivieren

WordPress-Themes verwenden die Funktion wp_nav_menu(), um Menüs anzuzeigen. Wir haben auch ein Tutorial für Anfänger veröffentlicht, wie man benutzerdefinierte Navigationsmenüs in WordPress-Themes hinzufügt. Die meisten WordPress-Themes fügen Menüs in der Vorlagendatei header.php hinzu. Es ist jedoch möglich, dass Ihr Theme eine andere Vorlagendatei zur Anzeige von Menüs verwendet hat.

Was wir jetzt tun müssen, ist, die Funktion wp_nav_menu() in Ihrem Theme zu finden (höchstwahrscheinlich in header.php) und sie wie folgt zu ändern.

<?php $walker = new Menu_With_Description; ?>

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'walker' => $walker ) ); ?>

In der ersten Zeile setzen wir $walker, um die zuvor in functions.php definierte Walker-Klasse zu verwenden. In der zweiten Codezeile ist das einzige zusätzliche Argument, das wir unseren bestehenden wp_nav_menu-Argumenten hinzufügen müssen, 'walker' => $walker.

Schritt 4. Formatierung der Beschreibungen

Die von uns zuvor hinzugefügte Walker-Klasse zeigt die Artikelbeschreibungen in dieser Codezeile an:

$item_output .= '<br /><span class="sub">' . $item->description . '</span>';

Der obige Code fügt einen Zeilenumbruch zum Menüpunkt hinzu, indem ein
-Tag hinzugefügt wird, und umschließt dann Ihre Beschreibungen in einem Span mit der Klasse sub. So:

<li id="menu-item-99" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="http://www.example.com/about/">About<br /><span class="sub">Who are we?</span></a></li>

Um zu ändern, wie Ihre Beschreibungen auf Ihrer Website angezeigt werden, können Sie CSS in die Stylesheet-Datei Ihres Themes einfügen. Wir haben dies auf Twenty Twelve getestet und dieses CSS verwendet.

.menu-item {
border-left: 1px solid #ccc;
}

span.sub { 
font-style:italic;
font-size:small;
}

Wir hoffen, dass Sie diesen Artikel nützlich finden und er Ihnen hilft, coole Menüs mit Menübeschreibungen in Ihrem Theme zu erstellen. Fragen? Hinterlassen Sie sie unten in den Kommentaren.

Zusätzliche Ressourcen

So gestalten Sie WordPress-Navigationsmenüs

Benutzerdefinierte Elemente zu bestimmten WordPress-Menüs hinzufügen

Bill Ericksons Menüs mit Beschreibungs-Klasse

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, wenn Sie auf einige unserer Links klicken, können wir eine Provision verdienen. Sehen Sie wie WPBeginner finanziert wird, warum das wichtig ist und wie Sie uns unterstützen können. Hier ist unser Redaktionsprozess.

Das ultimative WordPress-Toolkit

Erhalten Sie KOSTENLOSEN Zugang zu unserem Toolkit – eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Leserinteraktionen

51 CommentsLeave a Reply

  1. In PHP 8.0 und höher wird dies einen kritischen Fehler auslösen.

    Sie müssen diese Zeile finden:
    function start_el( $output, $item, $depth, $args ) {

    Wenn Sie diese Zeile in die folgende ändern, sollte der Fehler verschwinden:
    function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {

  2. Um Menü-Beschreibungen in meinen WordPress-Themes hinzuzufügen, habe ich Schritt 1 und 2 dieses Blogs durchgeführt, konnte aber Schritt 3 nicht folgen, um fortzufahren und die gesamte Änderung vorzunehmen.

    • Wenn Sie die Funktion in Ihrem Theme nicht finden können, empfehlen wir Ihnen, sich an den Support Ihres spezifischen Themes zu wenden, und dieser sollte Ihnen helfen können.

      Admin

  3. Hallo,
    Wie kann ich die Produktkategoriebeschreibung im Max Mega Menu deaktivieren?
    Ich bin bereits zu Mega Menu > Allgemeine Einstellungen gegangen und habe Menüpunktbeschreibungen auf deaktiviert gesetzt, aber das Problem besteht weiterhin.

    • Sie sollten sich an den Support des Plugins wenden, und dieser kann Ihnen bei der nicht korrekt funktionierenden Einstellung helfen.

      Admin

  4. Kann das mit dem WP_Bootstrap_Navwalker funktionieren?

    da ich es versucht habe und es meine Website kaputt macht....

  5. Hallo.. Bitte helfen Sie..
    Wie füge ich den Titel der Kategorie hinzu, ohne die Beschreibung des Kategorietitels zu verwenden?

  6. Hallo Leute,

    Irgendwelche Ideen, wie man HTML-Tags in der Beschreibung zulässt?
    remove_filter(‘nav_menu_description’, ‘strip_tags’);
    Das hier funktioniert bei mir nicht.

    • @Iryna: Können Sie Ihren Code irgendwo posten, z.B. pastebin.com.
      Wo Sie remove_filter() aufrufen, bestimmt, ob es funktioniert – es muss nach dem add_filter()-Aufruf aufgerufen werden.
      Wenn Sie es kurz vor dem wp_nav_menu()-Aufruf aufrufen, könnte es funktionieren.

  7. Könnte es schon fertig zum Einstecken sein? Wie wird dieser Hack mit dem Thema „Twenty TwelveVersion: 1.5“ funktionieren?
    ? Und genau wie beim Plugin wpml?

  8. Hey Mann, ich habe die Walker-Klasse zu functions.php hinzugefügt, aber ich kann wp_nav_menu im Genesis-Theme nicht finden. Was fehlt mir? Ich habe keine Ahnung, was ich als Nächstes tun soll?!?!

  9. Sie erklären sehr gut – detailliert und klar. 1 Minute und Menüpunkte Beschreibungen sind in Ordnung. Danke!

  10. Vielen Dank für dieses Tutorial. Es wurde mir empfohlen und hat perfekt funktioniert, um die gewünschten Änderungen vorzunehmen. Bei diesen Änderungen habe ich jedoch meine Dropdown-Untermenüs verloren. Haben Sie eine Idee, was das in der Codeänderung beeinflusst hat?

    Vielen Dank für Ihre Zeit und das Tutorial

    • Es scheint ein CSS-Problem zu sein, es tut uns leid, dass wir nicht spezifischer sein konnten. Versuchen Sie, die Entwicklertools von Google Chrome zu verwenden, um es zu debuggen.

      Admin

  11. Ich habe die Menübeschreibungen implementiert und es hat großartig funktioniert. Jetzt bittet mein Kunde um einen Zeilenumbruch innerhalb einer der Beschreibungen. Ich habe versucht, einen Wagenrücklauf einzufügen und ein Tag in das Beschreibungsfeld über das Admin-Panel einzufügen. Es erscheint nicht im Frontend. WP entfernt diese Bearbeitungen. Gibt es eine Möglichkeit, dies zu beheben?

  12. Tolles Tutorial, Leute, ich möchte nur wissen, wie ich das in einem benutzerdefinierten Menü implementiere, das mit dem Custom Menu-Widget angezeigt wird?

  13. Danke! Ich arbeite seit Jahren mit WordPress und habe das noch nie zuvor gehört. Ich wollte die Beschreibungen entfernen, da sie auf der Website, an der ich arbeite, sehr redundant waren. Ich habe überall gesucht, woher sie kamen.

    Oh Freude!

  14. funktioniert!

    aber für PHP 5.4 müssen Sie die wp_walker-Argumente für die start_el-Funktion anpassen:

    function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 )

    und ersetzen Sie $item durch $object.

  15. Perfekt. Das war genau das, was ich brauchte, um eine Website fertigzustellen. Ich hatte einige Probleme mit dem CSS, aber ich habe es schließlich herausgefunden und zum Laufen gebracht. Danke für die tollen Artikel.

  16. Ich musste dasselbe erstellen und war völlig verloren.

    Ich hatte vor, ein paar dumme Dinge zu tun, um diese Sache zu erledigen.

    Gott sei Dank habe ich diesen Beitrag gefunden und Zeit und Stress gespart!

    Ich liebe diese Seite, habe so viel gelernt.

    Vielen Dank, dass Sie die einfachsten Dinge hier gezeigt haben.

    • Das Span-Tag erscheint auch bei Untermenüs.

      Es wird dort nicht angezeigt, aber es nimmt so viel Platz ein, dass es zu seltsam aussieht.

      Gibt es dafür eine Umgehungslösung?

  17. Das ist wirklich eine tolle Anleitung und ich habe mich gefragt, ob das auch für Thesis 1.8.5 funktionieren würde? Wenn nicht, wäre es toll, wenn Sie eine bereitstellen könnten. Ich werde Ihnen auf jeden Fall helfen, sie zu veröffentlichen. Daumen hoch!

  18. Ich habe Ihr Tutorial befolgt und meinem Menü eine Beschreibung hinzugefügt. Danke! Wenn ich jedoch im mobilen Modus bin, verwandelt sich das Menü in ein Dropdown-Menü und der Menütitel und die Beschreibung sind verbunden. Wenn mein Menüpunkt zum Beispiel „Über uns“ und die Beschreibung „Mehr über mich“ lautet, zeigt die mobile Version „Über unsMehr über mich“ an. Gibt es eine Möglichkeit, dies zu beheben?

    • Ich hatte das gleiche Problem. Hier ist, was ich getan habe.

      Ich habe dies geändert:
      $description = ! empty( $item->description ) ? ‘<span>’.esc_attr( $item->description ).'</span>’ : ”;

      Dazu:
      $description = ! empty( $item->description ) ? ‘<br /><span>’.esc_attr( $item->description ).'</span>’ : ”;

      Nicht sicher, ob es die beste Lösung ist, aber für mich hat es funktioniert.

      • Danke Leute, ich bin auf das gestoßen, was SVET und DAVID mit dem mobilen Menü gemacht haben.
        Der Code scheint meine Änderung geändert zu haben, die einfach nur ein Span mit dem Trennzeichen angehängt hat und in meiner Desktop-Abfrage einfach unterdrückt wurde, da sie dort nicht benötigt wurde.

        $item_output .= ‘ – ‘;

        Innerhalb meines Desktop Only Query-Sets wird der Span auf display none gesetzt;
        @media only screen and (min-width: 740px) {
        header #submenu li span.dash { display:none; }

        Ich hoffe, das hilft, hat mein Problem gut gelöst.

  19. Vielen Dank für das großartige Tutorial. Ich habe die wichtigsten Schritte gut erledigt, wie Sie sehen können unter
    http://ueab.ac.ke/demo/index

    Ich steckte beim Styling fest – wie kann ich den Abstand zwischen dem Hauptmenü-Label und der Beschreibung verringern? Ihre Hilfe wird sehr geschätzt.

  20. Toller Beitrag. Ich habe versucht, mich vorher damit zu beschäftigen, aber die vorherigen Anleitungen, die ich gefunden habe, waren nicht so einfach zu befolgen. Ich konnte den functions.php-Code einfügen, herausfinden, wie ich die Walker-Klasse in meiner Header-Datei ändere (unterschiedlich für das von mir verwendete Theme, aber geradlinig) und die Dinge in etwa 15 Minuten von Anfang bis Ende zum Laufen bringen.

    Ein Punkt, den Sie vielleicht hinzufügen möchten, ist, wie man den rechten Rand beim letzten Menüpunkt mit der :last-child-Eigenschaft einfügt.


    .menu-item:last-child { border-right: 1px solid #ccc; }

  21. Anstatt Walker_Nav_Menu zu erweitern, wäre es schön (und einfacher), wenn ein Filter bereitgestellt würde, z.B.
    Wenn der Kerncode hätte:
    $item_output .= apply_filters( ‘walker_nav_menu_description’, $item->description);

    Dann würde die benutzerdefinierte Filterfunktion nur enthalten:
    return ” . $description . ”;

Kommentar hinterlassen

Vielen Dank, dass Sie einen Kommentar hinterlassen. Bitte beachten Sie, dass alle Kommentare gemäß unserer Kommentarrichtlinie moderiert werden und Ihre E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwenden Sie KEINE Schlüsselwörter im Namensfeld. Führen wir ein persönliches und bedeutungsvolles Gespräch.