it-swarm.com.de

So erhalten Sie den Namen des aktuellen Seitenmenüelements anstelle der vollständigen Menüelementliste

Ich möchte eine Menüstruktur erstellen, in der Sie nur den Menüpunkt der aktuellen Seite sehen können, wie auf dieser Website http://www.bigspaceship.com/services/

Ich suche herum und ich habe die folgende Funktion bis jetzt

<?php
$menu_items = wp_get_nav_menu_items( 'main-menu' );
foreach( $menu_items as $item ) {
  print_r( $item ) ; // see what you can work with
  // carry on
}

Wie kann ich eigentlich nur den Menüpunktnamen für die aktuelle Seite drucken? Ich möchte das Menüelement weiterhin über das Dashboard steuern, dh, ich möchte den Namen jedes Menüs im Administrator ändern und sie dynamisch aktualisieren lassen.

Danke für jede Hilfe.

1
cmsdeployed
  1. In jedem Menüpunkt enthält object_id die ID des Objekts, auf das sich der Menüpunkt bezieht. Dies ist eine Beitrags-/Seiten-/CPT-/Term-ID. Wenn es sich um einen benutzerdefinierten Link handelt, bezieht sich die ID auf sich selbst. (Wenn Sie wissen möchten, um welchen Objekttyp es sich handelt, enthält object das.)

  2. get_queried_object_id() gibt Ihnen die ID der aktuellen Seite.

  3. Wir können die API-Funktion wp_filter_object_list() verwenden, um alle Menüelemente herauszufiltern, bei denen der object_id nicht mit dem abgefragten Objekt übereinstimmt.

  4. Wir werden dann mit einem Array belassen, das ein einzelnes Element enthält, also verwenden wir PHPs current, so dass $this_item jetzt nur das passende Menüelementobjekt enthält.

  5. und schließlich enthält title den Namen, den wir dem Menüpunkt gegeben haben.

$menu_items = wp_get_nav_menu_items( 'main-menu' );
$this_item = current( wp_filter_object_list( $menu_items, array( 'object_id' => get_queried_object_id() ) ) );
echo $this_item->title;

Hinweis- Ich habe das nicht getestet, also hoffentlich funktioniert es!

6
Milo