Hover-Dropdown-Menü im Genesis-Sample-Theme deaktivieren

Standardmäßig verhält sich das Genesis-Sample-Theme wie folgt:
Bindet man als Hauptmenü oder im rechten Header-Widget-Bereich ein Menü mit Unterseiten ein, dann werden diese automatisch eingeblendet, sofern man über die darüberliegende Seite mit der Maus fährt.

Bei meinem letzten Theme wollte ich dieses Verhalten bewusst unterbinden, die Lösung ist jedoch etwas umständlicher in der Umsetzung.

Zunächst muss man Superfish deaktivieren. Superfish ist eine jQuery-Erweiterung, die mit Hilfe von JavaScript die Untermenüpunkte einblendet.

Genesis prüft in der Datei lib/functions/menu.php mit Hilfe der Funktion genesis_superfish_enabled(), ob Superfish aktiviert werden soll. In dieser Funktion erfolgt die Prüfung mittels:

return ( ! genesis_html5() && genesis_get_option( 'superfish' ) ) || genesis_a11y( 'drop-down-menu' ) || apply_filters( 'genesis_superfish_enabled', false );

Um Superfish nun zu aktivieren, müssen alle Kriterien false ergeben. Dazu muss zunächst bei den Genesis-Accessibility-Features das drop-down-menu entfernt werden. Irgendwo in der functions.php des Child-Themes gibt es eine Zeile im Stil von:

add_theme_support( 'genesis-accessibility', array( '404-page', 'drop-down-menu', 'headings', 'rems', 'search-form', 'skip-links' ) );

Diese muss demnach geändert werden in:

add_theme_support( 'genesis-accessibility', array( '404-page', 'headings', 'rems', 'search-form', 'skip-links' ) );

Sollte der Filter genesis_superfish_enabled auf true gesetzt sein, muss zusätzlich diese Zeile eingefügt werden:

add_filter( 'genesis_superfish_enabled', '__return_false' );

Per Default im Sample-Theme ist genesis_superfish_enabled jedoch bereits false, so dass diese Zeile nicht erforderlich ist.

Superfish ist nun deaktiviert, allerdings werden die Untermenüpunkte noch immer eingeblendet, wenn man über den entsprechenden Parent-Menüpunkt fährt. Das liegt am CSS des Sample-Themes. Folgende Zeilen müssen noch auskommentiert werden, damit auch das Hovern via CSS unterbunden wird:

.genesis-nav-menu .menu-item:hover {
    /*position: static;*/
}

.genesis-nav-menu .menu-item:hover > .sub-menu {
    /*left: auto;
    opacity: 1;*/
}

Nun werden die Unterpunkte nicht mehr eingeblendet, weder per Superfish, noch per CSS.

1 Gedanke zu “Hover-Dropdown-Menü im Genesis-Sample-Theme deaktivieren”

Schreibe einen Kommentar zu Max Antworten abbrechen