2017-12-27 46 views
1

Ich bin wirklich neu in WordPress. Ich habe ein benutzerdefiniertes Menü, in dem ich nur bestimmte Menüelemente anzeigen möchte, wenn der Browser des Benutzers auf einer bestimmten Seite landet.Wie bestimmte CSS-Stile angezeigt werden wp_nav_menu()

wp_nav_menu (Feld ('theme_location' => 'menu-main'));

Gibt es eine Möglichkeit, wp_nav_menu() Hook zu haben, um nur bestimmte Menüeinträge anzuzeigen, die bestimmte CSS-Klassenelemente haben?

+0

Nein, gibt es nicht. Wie auch immer, Forschung 'wp_nav_menu' - Sie werden sehen, dass Sie * mehrere Menüs haben können, die Sie zeigen, je nachdem, auf welcher Seite Sie sich befinden, und weiter können Sie das Menü" filtern ", also könnten Sie mit benutzerdefiniertem Code ein Filter, der begrenzt, welche Menüoption (en) unter bestimmten Umständen angezeigt werden. –

Antwort

0

Suchen Sie nach vorhandenen Plugins, bevor Sie benutzerdefinierte Funktionen schreiben. Für Ihre spezifische Funktion würde ich das Page Specific Menu Items Plugin verwenden. Wenn Sie eine bestehende Funktion hinzufügen möchten, sollten Sie den Filter body_class verwenden. Mit dieser Funktion können Sie Ihrem body-Element eine css-Klasse hinzufügen und dann css schreiben, die die Darstellung Ihres Menüs für eine bestimmte Seite ändert.

1

Wenn ich Ihre Frage gut verstehe, ja, gibt es einen Weg. Sie können Konditionale verwenden. PHP if-Anweisungen. Wordpress ermöglicht Ihnen den Seitentitel überprüfen, ID, Kategorie, bevor Sie einen Befehl zB

if(is_page(array('about-us', 'contact', 'management')) { 

    //either in about us, or contact, or management page is in view 
    //execute something 

} else { 

    //none of the page about us, contact or management is in view 
    //execute something 

} 

ausführen und Sie können eine Klasse/ID an die wp_nav_menu

So verbindet die beiden Ideen hinzufügen, können Sie haben:

// When Page 42 (ID) is being displayed. 
if (is_page(42)) { 

    wp_nav_menu(array('menu_id' => 'pines', 'menu_class' => 'pnav')); 

} elseif(is_page(array('about-us', 'contact', 'management')) { 

    wp_nav_menu(array('menu_id' => 'bananas', 'menu_class' => 'nav')); 

} else { 

    wp_nav_menu(array('menu_id' => 'main-id', 'menu_class' => 'main-nav')); 

} 

Nachdem Sie eindeutige IDs und Klassen hinzugefügt haben, können Sie diese so formatieren, wie Sie möchten. Referenz https://codex.wordpress.org/Conditional_Tags

Verwandte Themen