====== Unterschiede ====== Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
|
ideas:hook-fuer-alternative-navigation [2013/02/14 20:16] Sunflower angelegt |
ideas:hook-fuer-alternative-navigation [2019/04/25 14:03] (aktuell) |
||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| - | Vorschlag für neuen hook um die Navigation für verschiedene custom menus nutzbar zu machen. | + | <del>Vorschlag für neuen hook um die Navigation für verschiedene custom menus nutzbar zu machen.</del>\\ |
| + | Dieser Hook ist seit version 1.5.5 im core eingebaut. Danke! Im Beispiel habe ich den neuen Hooknamen ''xtreme_set_menu_name'' entsprechend angepasst. | ||
| - | In ''xtreme-one/lib/xtreme-navigation.php'' in der ''function xtreme_navigation_content'' | ||
| - | ca. in Zeile 208 statt | ||
| - | <code phpwp> | ||
| - | } else { | ||
| - | $menu_name = esc_attr($val); | ||
| - | $val = 'wp_nav_menu'; | ||
| - | </code> | ||
| - | hier einen neuen Filter einbauen | ||
| - | <code phpwp> | ||
| - | } else { | ||
| - | /* T.C. */ | ||
| - | $menu_name = apply_filters( 'tc_custom_menu_filter', esc_attr($val), $nav ); | ||
| - | // $menu_name = esc_attr($val); | ||
| - | $val = 'wp_nav_menu'; | ||
| - | </code> | ||
| Damit kann man bequem die Ausgabe für alternative Menüs einfach uber die functions.php steuern. Man muss nur den slug des gewünschten custom menus übergeben und kann über conditionals in der eigenen functions.php die Navigation manipulieren. | Damit kann man bequem die Ausgabe für alternative Menüs einfach uber die functions.php steuern. Man muss nur den slug des gewünschten custom menus übergeben und kann über conditionals in der eigenen functions.php die Navigation manipulieren. | ||
| Zeile 25: | Zeile 12: | ||
| function tc_conditional_based_menu($val, $nav) { | function tc_conditional_based_menu($val, $nav) { | ||
| /* | /* | ||
| + | * use conditional tags to organize alternative custom wp_nav_menus. | ||
| * $val = default value from xtreme-one settings -> Navigation -> primary or secondary -> content | * $val = default value from xtreme-one settings -> Navigation -> primary or secondary -> content | ||
| * $nav = primary or secondary | * $nav = primary or secondary | ||
| - | * use conditional tags to organize alternative custom wp_nav_menus. | + | * |
| + | * @return string $val Your alternative Menu slug | ||
| */ | */ | ||
| switch ($nav) { | switch ($nav) { | ||
| Zeile 51: | Zeile 40: | ||
| return $val; | return $val; | ||
| } | } | ||
| - | add_filter('tc_custom_menu_filter', 'tc_conditional_based_menu', 10, 2); | + | add_filter( 'xtreme_set_menu_name', 'tc_conditional_based_menu', 10, 2); |
| </code> | </code> | ||
| Hier im Beispiel ist es jetzt ein custom_menu mit dem slug primary-member, welches jetzt für alle angemeldeten User anstelle des im Theme eingestellten Menüs angezeigt wird.\\ | Hier im Beispiel ist es jetzt ein custom_menu mit dem slug primary-member, welches jetzt für alle angemeldeten User anstelle des im Theme eingestellten Menüs angezeigt wird.\\ | ||
| Die Möglichkeit so die Navigation für verschiedene Zustände über die conditionals abzudecken, sprengen dieses Demo. Vorstellbar für einzelne Seiten, Kategorien, logged_in, ... | Die Möglichkeit so die Navigation für verschiedene Zustände über die conditionals abzudecken, sprengen dieses Demo. Vorstellbar für einzelne Seiten, Kategorien, logged_in, ... | ||
| + | |||
| + | Die folgenden Änderungen im core sind nicht mehr vorzunehmen, der Filter ist seit xtreme-one ''version 1.5.5'' integriert. | ||
| + | In ''xtreme-one/lib/xtreme-navigation.php'' in der ''function xtreme_navigation_content'' | ||
| + | ca. in Zeile 208 statt | ||
| + | <code phpwp> | ||
| + | } else { | ||
| + | $menu_name = esc_attr($val); | ||
| + | $val = 'wp_nav_menu'; | ||
| + | </code> | ||
| + | hier einen neuen Filter einbauen | ||
| + | <code phpwp> | ||
| + | } else { | ||
| + | /* T.C. */ | ||
| + | $menu_name = apply_filters( 'xtreme_set_menu_name', esc_attr($val), $nav ); | ||
| + | // $menu_name = esc_attr($val); | ||
| + | $val = 'wp_nav_menu'; | ||
| + | </code> | ||