Wie füge ich aktive class auf der aktuellen Menüeintragseite hinzu?

Ich habe zwei Links: Produkte und Neuigkeiten.

Wenn ich auf “Produkte” oder “Neuigkeiten” klicke, wird eine Archivseite mit einigen Beiträgen zurückgegeben. Wenn ich auf einen Beitrag klicke, wird eine einzelne Seite dieses Beitrags angezeigt.

Im Menü verwende ich diesen Code auf

  • , um eine class namens active hinzuzufügen, wenn die Seite zu Hause ist:

     <li class="active"> 

    Aber ich weiß nicht, wie es geht, wenn ich zwei Archivseiten und zwei Singleseiten habe.

    Wenn ich if( is_archive() || is_single() ) , fügt es eine class in beiden Menü-Itens hinzu.

    Etwas Hilfe wäre willkommen.

    Solutions Collecting From Web of "Wie füge ich aktive class auf der aktuellen Menüeintragseite hinzu?"

    Sie könnten bedingte classn für jede in Ihrer Child-Theme-functionsdatei hinzufügen:

    Hier ist ein Beispiel, das Sie Ihren eigenen Bedürfnissen anpassen können.

     add_filter('nav_menu_css_class' , 'wpsites_nav_class' , 10 , 2); function wpsites_nav_class($classes, $item){ if( is_archive() && $item->title == "Products"){ $classes[] = "products-class"; } return $classes; 

    Quelle http://codex.wordpress.org/Function_Reference/wp_nav_menu#Adding_Conditional_Classes_to_Menu_Items

    Sie können dann Ihr Navigationsmenü mit der neuen class in Ihrer Child-Theme-Datei style.css formatieren.

     .products-class { Your CSS declarations } 

    Dieser CSS-Code basiert auf dem obigen PHP-Code.

  • Ich nehme an, dass Ihre Products und News Beiträge sind benutzerdefinierte Beiträge.
    Für beide bedingten Tags gibt es ein $post_type Äquivalent:

     if (is_post_type_archive('products')) { // ... } elseif (is_post_type_archive(array('news', 'something'))) { // ... } elseif (is_singular('products')) { // ... } elseif (is_singular(array('news', 'something'))) { // ... } 

    Also, für Produkte wäre es:

     if (is_post_type_archive('products') || is_singular('products')) 

    Nachrichten entsprechend.

    Verweise:

    • is_post_type_archive
    • is_singular