Holen Sie sich Menüwerte von WordPress

Lesezeit: 3 Minuten

Benutzer-Avatar
Benutzer1048676

Alle, ich verwende den folgenden Code, um alle definierten WordPress-Menüs zu erhalten, die erstellt werden:

$menus = wp_get_nav_menus();

Ich kenne die ID des Menüs, das ich verwenden möchte. Basierend auf der Menü-ID möchte ich die Seiten erhalten, die sich in diesem Menü befinden, und das entsprechende Navigationslabel basierend auf einer ausgewählten Menü-ID. Wie kann ich das anstellen?

Das habe ich tatsächlich entdeckt:

$menu_items = wp_get_nav_menu_items($options['menu_choice']);

In diesem Beispiel sind die $options[‘menu_choice’] ist die ausgewählte Menü-ID, aber was ich wirklich möchte, ist, den Permalink-Wert anzugeben. Kann ich das davon bekommen?

Danke für jede Hilfe im Voraus!

  • Wussten Sie, dass es eine StackExchange-Site speziell für WordPress gibt? wordpress.stackexchange.com

    – julien_c

    15. März 2012 um 10:17 Uhr

  • überprüfen Sie diese Antwort stackoverflow.com/a/37959604/1153703

    – Bikesh M

    22. Juni 2016 um 5:54 Uhr

Das ist genau das, was Sie wollen.

$menu_name="menu-id"; //e.g. primary-menu; $options['menu_choice'] in your case

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

Jetzt ist $menu_items ein Objekt, das alle Daten für alle Menüpunkte enthält. So können Sie die erforderlichen Daten mit abrufen foreach Schleife.

foreach ($menu_items as $menu_item) {
    $id = $menu_item->ID;
    $title = $menu_item->title;
    $url = $menu_item->url;

    if ($parent_id = $menu_item->menu_item_parent) {
        //the element has a parent with id $parent_id, so you can build a hierarchically menu tree
    }
    else {
        //the element doesn't have a parent
    }
}

Weitere interessante Informationen zu dieser Frage, wie z. B. Bestelloptionen, finden Sie auf der offiziellen Website: http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items

Um auf den Titel und die URL jedes Elements in einem Menü zuzugreifen, verwenden Sie die wp_get_nav_menu_items() Funktion:

$menu_items = wp_get_nav_menu_items( $options['menu_choice'] );
foreach ( (array) $menu_items as $key => $menu_item ) {
    $title = $menu_item->title;
    $url = $menu_item->url;
}

Sie möchten ein bestimmtes Menü anzeigen? Warum nicht eine einfachere Funktion verwenden, wp_nav_menu, und übergeben Sie ein Argument Ihrer gewünschten Menü-ID? Ersetzen Sie im nächsten Beispiel einfach Ihre menu_id durch $menu_ID:

<?php 
$menu_args = array('menu' => $menu_ID );
wp_nav_menu( $menu_args ); 
?> 

  • $menu_ID = ‘195’; $menu_args = array(‘menu’ => $menu_ID ); wp_nav_menu( $menu_args );

    – Pramod Jain

    26. Mai 2017 um 7:13 Uhr

Um die Post-ID zu erhalten, müssen Sie sie mit dieser Funktion abrufen:

$id = get_post_meta( $menu_item->ID, ‘_menu_item_object_id’, true );

Andernfalls ist die ID der benutzerdefinierte Beitrag vom Typ nav_menu, den WordPress für die Menüs verwendet. Dasselbe gilt für die $url, Sie können sie mit get_permalink($id) aufrufen;

<pre> 
$menu_ID = '195'; // 195 is a menu id this id you can see 
http://example.com/wp-admin/nav-menus.php?action=edit&menu=195
$menu_args = array('menu' => $menu_ID );
wp_nav_menu( $menu_args );  
</pre>

1383150cookie-checkHolen Sie sich Menüwerte von WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy