Wie Bootstrap, kennt auch BootScore nur Menüs mit einer Tiefe von 2. Bootstrap, weil es das grundsätzlich so will. BootScore, weil es seiner Basis so strikt wie möglich folgt. Tiefer verschachtelte Menüs gehen aber auch:
Ebene-0-Menü-Einträge listen beide horizontal auf, zugehörige Ebene-1-Einträge jeweils vertikal darunter. Die Einträge auf oberster Ebene gruppieren also die Einträge darunter. Und Menüs verhalten sich auf Smartphones und Desktops gleich: Die oberen Menüeinträge werden angeklickt, wenn die entsprechende Untergruppe angezeigt werden soll. Und sie werden auch angeklickt, damit die Gruppe wieder eingeklappt wird. Also überall alles ohne hover
, weder auf der Smartphones, noch auf größeren Geräten.
Hier der Weg, den BootScore selbst dafür anbietet1 , mehrdimensionale Menüs zu erzeugen:
Lösung
- Lege einen Include-Ordner
inc
in Deinem Child-Theme an. - Lade navbar.php aus github.com/imanishpushkar/bs5-navwalker in diesen Include-Ordner herunter.
- Benenne die Datei in
class-bootstrap-5-navwalker.php
um. - Füge folgenden Code der Datei
functions.php
in Deinem Child-Theme hinzu:
// Register new 3 level depth nav-walker
function register_navwalker() {
require_once('inc/class-bootstrap-5-navwalker.php');
// Register Menus
register_nav_menu('main-menu', 'Main menu');
register_nav_menu('footer-menu', 'Footer menu');
}
- Kopiere — sofern noch nicht geschehen — die Datei
header.php
aus dem Themebootscore-main
in Dein Child-Theme. - Suche nach
wp_nav_menu(array(
… - Setze in dem Array
'depth' => 2,
auf den Wert, die die Tiefe Deines Menüs maximal hat.
Hintergrund
Erläutern wir die Aspekte diesmal rückwärts:
- Der Code aus dem GitHub-Repository bs5-navwalker von Manisch Pushkar ist explizit MIT lizenziert. Du kannst ihn also direkt in Dein Child-Theme einbauen, ohne den Open-Source-Charakter zu unterlaufen.
- Die Lösung selbst hat Bastian Kreiter2 in einer Diskussion3 als Ausweg dafür angeboten, dass bootScore diesbzgl. lieber den Eigenarten von Bootstrap folgt.
- Dass Bootstrap mehrdimensionale Menüs anbieten solle, wird immer wieder thematisiert.4 Und stets erneut abgelehnt, mit unterschiedlichen Begründungen. So habe er, Mark Otto5 — wie er 2017 sagt — diesen Wunsch schon vor drei Jahren abgelehnt. Und das habe niemand daran gehindert, gute Sites zu schreiben.6 Außerdem gäbe es nur schwierige technische Lösungen, bei denen Aufwand und Gewinn nicht in angemessenem Verhältnis stünden. 7
So haben wir jetzt trotzdem eine Lösung für den Wunsch nach tiefer eingebetteten Untermenüs an der Hand. Gleichwohl werden wir sie nicht extensiv anwenden. Denn Marks Einwände in Sachen Usability und Design sind bedenkenswert.
Und dann noch dies:
- Die Untermenüs werden hier übereinander gelegt und müssen — entsprechend der bootStrap-Logik — aktiv wieder weggeklickt werden. Der hier beschriebene Weg bietet also (noch) keine Lösung für ein fehlendes
Hover
auf Desktopsystemen.8 - Dass Untermenüs stets per Klick geöffnet und wieder geschlossen werden müssen, steht der gängigen Praxis entgegen, dem gruppierenden Menüeintrag direkt auch eine Seite zuzuordnen. Das Menüdesign muss darauf Rücksicht nehmen.9
Oder anders gesagt: immer hübsch sauber bleiben.
Und in welchem Zusammenhang …
… steht das mit unserer Migration zu bootScore? Nun, hat eine Web-Designerin die ersten Schritte auch in Sachen SEO getan, wird sie sich bald einem richtig dicken Brett zuwenden, nämlich ihrem Menü. Dabei muss sie thematische Cluster sauber gliedern und präsentieren, ohne zu fancy zu werden. Dann kann sie die Anzeige von festen und skalierbaren Bildern aufhübschen und beschleunigen. Über einen Teil dieser Etappe spricht auch dieser Post.
Im Übrigen: Männer sind mitgemeint.
- wenigstens indirekt [↩]
- = crftwrk, Spiritus Rektor von bootScore [↩]
- vgl. discussion #347 [↩]
- pars pro toto: vgl. issue 27659 [↩]
- = mdo, Spiritus Rector von Bootstrap [↩]
- vgl. 21026#issuecomment-313980746 [↩]
- vgl. 27659#issuecomment-441783535 [↩]
- Zu hover-Menüs später mehr [↩]
- Zur Gruppierung von Submenüs später mehr [↩]