it-swarm.com.de

Benutzerdefinierte Menüs: Problem mit dynamischer Hervorhebung bei benutzerdefiniertem Home-Link

Momentan implementiere ich wp_nav_menu - alles ist gut gelaufen, bis auf die dynamische Hervorhebung. Der Menücode sieht folgendermaßen aus (wenn home (ein benutzerdefinierter Link) ausgewählt ist):

<div class="menu-header">
<ul class="menu" id="menu-main-nav">
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-126" id="menu-item-126"><a href="path.to.link">Home</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-122" id="menu-item-122"><a href="path.to.link">Information</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-123" id="menu-item-123"><a href="path.to.link">Contact</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-124" id="menu-item-124"><a href="path.to.link">About</a></li>
</ul>
</div>

Wenn eine andere Seite als home ausgewählt wird (bei der es sich um einen benutzerdefinierten Link handelt), wird Folgendes ausgegeben:

<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-65 current_page_item menu-item-122" id="menu-item-122"><a href="path.to.link">Information</a></li>

Wie Sie sehen können, enthält dies einen aktiven Stil 'Aktuelles Menüelement', in dem der benutzerdefinierte Link nur 'Menüelementtyp-Benutzerdefiniertes Menüelement-Objekt-Benutzerdefiniert' schreibt.

Meine Frage ist also, ob es eine Möglichkeit gibt, einen ausgewählten Elementstil für benutzerdefinierte Links in WP3-Menüs hinzuzufügen.

1
toomanyairmiles

Ich habe das mit etwas jQuery erreicht:

$("#sidebar ul li").each(function () {
     if ($(this).find("a").attr("href") == window.location.href) {
         $(this).addClass("current-menu-item");
     }
});

(Mein Navi befindet sich in einem Div mit der ID 'Sidebar', Sie müssen den ersten Selektor ändern).

Es prüft, ob die href der Links mit der aktuellen URL übereinstimmt und fügt in diesem Fall "current-menu-item" hinzu. Sie können dann aktive Links mit der Klasse .current-menu-style formatieren.

0
Shaun

Ein besserer Ansatz wäre, eine "Startseite" zu den wp_page_menu()-Argumenten hinzuzufügen, sodass Sie einen Link zur "Startseite" hinzufügen können.

Fügen Sie zuerst diesen Filter zu functions.php hinzu, um den Home-Link anzuzeigen:

function mytheme_filter_page_menu_args( $args ) {
    $args['show_home'] = true;
    return $args;
}
add_filter( 'wp_page_menu_args', 'mytheme_filter_page_menu_args' );

In Dashboard -> Appearance -> Menus wird jetzt unter der Metabox "Pages" ein Link zur Startseite angezeigt. Wählen Sie es aus und fügen Sie es Ihrem benutzerdefinierten Menü hinzu.

Gutschrift und Screenshots hier .

0
Chip Bennett