Ruft die Zeichenfolge des ursprünglichen Menüelementnamens anstelle der Bezeichnung ab

Ich erstelle ein hierarchisches Menü mit benutzerdefinierten Taxonomien und den zugehörigen Posts mit wp_get_nav_menu_items wie folgt:

if( $locations = get_nav_menu_locations() && isset($locations['secondary']) ): $menu = wp_get_nav_menu_object( $locations['secondary'] ); $menu_items = wp_get_nav_menu_items( $menu->term_id ); foreach( (array) $menu_items as $key => $menu_item ): # access to $menu_item -> title; # access to $menu_item -> ID; # access to $menu_item -> object_id; # etc ... endforeach; endif; etc ... 

Angenommen, ich habe einen Menüpunkt namens service (es ist ein Begriff der benutzerdefinierten Taxonomie solutions_category), und von der Darstellung -> Menüs habe ich die Bezeichnung über das Navigationsetikett in ” Unsere Dienste ” geändert. In diesem Fall gibt $ menu_item-> title ‘Our Services’ zurück. Wie kann ich stattdessen “Service” bekommen? Weil ich es für eine nachfolgende WP_Query brauche, um alle Beiträge zu erhalten, die zu der benutzerdefinierten Kategorie ‘service’ gehören

Vielen Dank

PS Ich kann den kompletten Code posten, wenn Sie brauchen.

Solutions Collecting From Web of "Ruft die Zeichenfolge des ursprünglichen Menüelementnamens anstelle der Bezeichnung ab"

Sie können versuchen, diese Informationen zu erhalten, indem Sie die function get_term_by() mit den relevanten Parametern des get_term_by() (nämlich object und object_id ) verwenden:

 foreach( (array) $menu_items as $key => $menu_item ) { // Match the menu items to your custom taxonomy: if( 'solutions_category' === $menu_item->object ) { // Fetch the corresponding term object: $term = get_term_by( 'term_id', $menu_item->object_id, $menu_item->object ); // Show the term name: echo $term->name; // Debug: // print_r( $term ); } } 

Beachten Sie, dass Sie ersetzen können, wenn Sie keine spezielle Taxonomie targetieren möchten

  // Match your custom taxonomy: if( 'solutions_category' === $menu_item->object ) 

mit

  // Match only menu items of the type "taxonomy": if( 'taxonomy' === $menu_item->type ) 

Dabei kann $menu_item->type Werte wie taxonomy , post_type , custom (Links), ...

Der Wert von $menu_item->type_label gibt Ihnen auch weitere Informationen zum Menüpunkttyp.

Ich hoffe das hilft.