Wie erhalte ich den Titel des aktuellen Menüelements als Variable?
10
Ist es möglich, den aktuellen Menüpunkt als PHP-Variable zu erhalten?
Ich liste die Kategorie Museen über den Menüpunkt "Museen, die wir unterstützen" auf, also möchte ich das Bit "Museen, die wir unterstützen" erhalten und irgendwo anzeigen?
Dies funktioniert natürlich nur, wenn Sie das Menü anzeigen, bevor Sie den Titel anzeigen. Wenn Sie es früher benötigen (möglicherweise im <title>Element?), Sollten Sie zuerst das Menü rendern und später anzeigen .
Hallo Jan, fragst du dich nur, ob es eine Möglichkeit gibt, ein Array der Kinder von $ menu_item-> current items zu erstellen? Versuchte mehrere Dinge, kam aber nicht sehr weit ..!
v3nt
schaffte dies mit Hilfe Ihres Filters - antworten Sie unten. Prost!
v3nt
Jan Fabry / Ich habe versucht, wpse16243_wp_nav_menu_objectsdie aktuelle Menü-ID abzurufen. Aber es ist nicht konsequent. Das Umschalten zwischen der Startseite und einem Menüpunkt gibt mir nicht immer den richtigen Menüpunkt - es ist eine Art "Verzögerung". Irgendwelche Vorschläge, wie ich die aktuelle Menü-ID abrufen kann?
Steven
Gibt es einen Grund, warum Sie dem Funktionsnamen ein Vorwort geben wpse16243? Ich sehe diese seltsame Art von Namen ziemlich häufig und frage mich, worum es geht. Haftungsausschluss: Wordpress noob.
Stephen Watkins
2
@Steve: Nur ein eindeutiges Präfix : WordPress Stack Exchange question number 16243. Wenn Benutzer diesen Code direkt kopieren, tritt kein Konflikt mit anderen Plugins auf, die möglicherweise dieselben Funktionsnamen verwenden.
<?php
function my_get_menu_item_name( $loc ){global $post;
$locs = get_nav_menu_locations();
$menu = wp_get_nav_menu_object( $locs[$loc]);if($menu){
$items = wp_get_nav_menu_items($menu->term_id);foreach($items as $k => $v){// Check if this menu item links to the current pageif($items[$k]->object_id == $post->ID){
$name = $items[$k]->title;break;}}}return $name;}
Rufen Sie dann das functionmit dem Standortnamen des Navigationsmenüs auf, das Sie verwenden möchten:
Die "Museen, die wir unterstützen" werden durch einen Beitragstitel, einen Seitentitel, einen Kategorietitel usw. generiert (oder, wenn Sie ein benutzerdefiniertes Navigationsmenü verwenden, kann es sich um einen benutzerdefinierten Titel handeln).
Was versuchst du mit diesem Text zu machen? Wo versuchst du es anzuzeigen? Ich nehme an, Sie versuchen, es auf der Kategorie-Indexseite anzuzeigen (da Sie angeben, dass dies der Fall ist current-menu-item). Wenn ja, rufen Sie einfach an, <?php single_cat_title(); ?>um den Kategorietitel auszugeben.
Wenn Sie zusätzliche Kategoriedaten benötigen, können Sie Folgendes verwenden:
$cat = get_the_category();
$currentcat = $cat[0];
Was die folgenden Variablen zur Verfügung stellt:
$currentcat=>cat_ID // Category ID
$currentcat=>cat_name // Category Name (Same as Title)
$currentcat=>category_nicename // Category Slug
$currentcat=>category_description // Category Description
$currentcat=>category_count // Category Count (# of Posts w/ this Category)
Wenn Sie sich an einem anderen Ort als der Kategorieindexseite befinden, müssen Sie die $ catid an diese Funktionen übergeben.
BEARBEITEN:
Da Sie darauf hingewiesen , dass „Museen We Support“ ist ein benutzerdefiniertes Menü - Titel, die am einfachsten wäre Annäherung an die Kategorie umbenennen von „Museen“ auf „Museen We Support“ (Anmerkung: Sie können die Schnecke verlassen können, museumsunverändert). Dies würde jedoch bedeuten, dass "Museen, die wir unterstützen" als Kategorietitel angezeigt wird, wo immer es in Ihrer Vorlage ausgegeben wird. Wenn das akzeptabel ist, dann keine Sorge.
Andernfalls müssen Sie so etwas wie wp_get_nav_menu_items()( Codex ref ) verwenden, um den Titel für den jeweiligen Menüpunkt abzurufen.
Hey Chip - es ist diese Seite; bfami.modernactivity.co.uk/category/museum Die Katze ist also im Grunde genommen 'Museum', aber ich möchte die 'MUSEEN, DIE WIR UNTERSTÜTZEN' zeigen, die das Navigationsetikett (benutzerdefinierter Titel) ist, das auf der Menüseite festgelegt ist. Denken Sie, dass es möglich ist, das irgendwie zu packen?
3.
Das hilft. Siehe meine Antwort bearbeiten. Sie haben mehrere Möglichkeiten: Benennen Sie die Kategorie um oder verwenden Sie wp_get_nav_menu_items().
Chip Bennett
Prost Chip - habe am Ende nur den Kategorietitel geändert!
wpse16243_wp_nav_menu_objects
die aktuelle Menü-ID abzurufen. Aber es ist nicht konsequent. Das Umschalten zwischen der Startseite und einem Menüpunkt gibt mir nicht immer den richtigen Menüpunkt - es ist eine Art "Verzögerung". Irgendwelche Vorschläge, wie ich die aktuelle Menü-ID abrufen kann?wpse16243
? Ich sehe diese seltsame Art von Namen ziemlich häufig und frage mich, worum es geht. Haftungsausschluss: Wordpress noob.WordPress Stack Exchange question number 16243
. Wenn Benutzer diesen Code direkt kopieren, tritt kein Konflikt mit anderen Plugins auf, die möglicherweise dieselben Funktionsnamen verwenden.Sie können verwenden
wp_get_nav_menu_items()
. Hier ist ein Beispielfunction
:Rufen Sie dann das
function
mit dem Standortnamen des Navigationsmenüs auf, das Sie verwenden möchten:quelle
quelle
Ich bin mir nicht sicher, ob ich genau folge.
Die "Museen, die wir unterstützen" werden durch einen Beitragstitel, einen Seitentitel, einen Kategorietitel usw. generiert (oder, wenn Sie ein benutzerdefiniertes Navigationsmenü verwenden, kann es sich um einen benutzerdefinierten Titel handeln).
Was versuchst du mit diesem Text zu machen? Wo versuchst du es anzuzeigen? Ich nehme an, Sie versuchen, es auf der Kategorie-Indexseite anzuzeigen (da Sie angeben, dass dies der Fall ist
current-menu-item
). Wenn ja, rufen Sie einfach an,<?php single_cat_title(); ?>
um den Kategorietitel auszugeben.Wenn Sie zusätzliche Kategoriedaten benötigen, können Sie Folgendes verwenden:
Was die folgenden Variablen zur Verfügung stellt:
Wenn Sie sich an einem anderen Ort als der Kategorieindexseite befinden, müssen Sie die $ catid an diese Funktionen übergeben.
BEARBEITEN:
Da Sie darauf hingewiesen , dass „Museen We Support“ ist ein benutzerdefiniertes Menü - Titel, die am einfachsten wäre Annäherung an die Kategorie umbenennen von „Museen“ auf „Museen We Support“ (Anmerkung: Sie können die Schnecke verlassen können,
museums
unverändert). Dies würde jedoch bedeuten, dass "Museen, die wir unterstützen" als Kategorietitel angezeigt wird, wo immer es in Ihrer Vorlage ausgegeben wird. Wenn das akzeptabel ist, dann keine Sorge.Andernfalls müssen Sie so etwas wie
wp_get_nav_menu_items()
( Codex ref ) verwenden, um den Titel für den jeweiligen Menüpunkt abzurufen.quelle
wp_get_nav_menu_items()
.