====== Unterschiede ====== Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
secondary-nav-auf-gewissen-seiten-ausblenden [2013/05/06 19:45] Sunflower [Zu verwenden mit fogenden hooks:] |
secondary-nav-auf-gewissen-seiten-ausblenden [2019/04/25 14:04] (aktuell) |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
related: [[http://marketpress.de/support/topic/secondary-nav-bei-gewissen-seiten-ausblenden/|Secondary Nav bei gewissen Seiten ausblenden]] | related: [[http://marketpress.de/support/topic/secondary-nav-bei-gewissen-seiten-ausblenden/|Secondary Nav bei gewissen Seiten ausblenden]] | ||
- | Dieses Beispiel bezieht sich jetzt auf die alternative secondary Navigation in xtreme-one, wenn sich diese in einem eigenen Layoutcontainer befindet. Also alle [[secondary-nav-auf-gewissen-seiten-ausblenden#zu_verwenden_mit_fogenden_hooks|Positionen, die unten als hooks aufgelistet sind]]. \\ | + | Nachtrag: Nachdem ja 1000 Wege nach Rom führen kann man es sich auch leichter machen, wenn man nur die Standard Positionen für Primary und Secondary Navigation von xtreme-one verwendet. Dazu zeige ich hier auch noch eine Möglichkeit auf: [[primary-secondary-navigation-mit-conditionals-steuern|Xtreme-one Primary / Secondary Navigation mit Conditionals steuern]] |
+ | |||
+ | ===== Secondary Navigation in eigenem Layout container ausgeben ===== | ||
+ | |||
+ | Dieses Beispiel bezieht sich jetzt auf die alternative secondary Navigation in xtreme-one, wenn sich diese **in einem eigenen Layoutcontainer** befindet. Also alle [[secondary-nav-auf-gewissen-seiten-ausblenden#hooks_fuer_die_navigation_mit_eigenem_layout_container|Positionen, die unten als hooks aufgelistet sind]]. \\ | ||
Hinweis: Im dropdown stehen nicht alle unten aufgelisteten Positionen zur Vefügung. | Hinweis: Im dropdown stehen nicht alle unten aufgelisteten Positionen zur Vefügung. | ||
Zeile 8: | Zeile 12: | ||
//Backend xtreme-one -> Navigation// | //Backend xtreme-one -> Navigation// | ||
- | Als erstes **aktiviert** man die //secondary nav// und wählt das entsprechende Stylesheet (shinybuttons, descriptive,...), welches man für seine Secondary Navigation verwenden will. Dieser Schritt ist wichtig, damit wir die richtige Klasse für die Navigation bei Erzeugung unseres layout containers für die Ausgabe bekommen. Diese wird automatisch beim erzeugen des ''xtreme_start_container'' verwendet. | + | Als erstes **aktiviert** man die //secondary nav// und wählt das entsprechende Stylesheet (shinybuttons, descriptive,...), welches man für seine Secondary Navigation verwenden will \\ |
+ | und wählt das Menu, welches angezeigt werden soll und setzt die anderen Einstellungen, wie man die Ausgabe wünscht. | ||
- | Dann **deaktiviert** man die seconday Nav wieder, da wir sie über einen hook ausgeben lassen, um conditonals zu verwenden. | + | Dann **deaktiviert** man die secondary Nav wieder, da wir sie über einen hook ausgeben lassen, um conditonals zu verwenden. Die Einstellungen werden in der Datenbank gespeichert und stehen beim Aufruf der ''function xtreme_navigation'' zur Verfügung. |
- | Kopiere dir nun folgendes in die functions.php deines ChildThemes und passe das ''array'' in ''is_page'' an deine Bedürfnisse an.\\ Schreibe dort deine ids der Seiten rein, auf der die secondary navigation __nicht__ erscheinen soll.\\ | + | Die Einstellung für die Position spielt hier keine Rolle, da wir diese durch einen entsprechenden hook bestimmen. |
- | Ändere dann den slug deines Menüs, welches du als secondary verwenden willst. | + | |
- | <code phpwp> | + | |
- | /* | + | |
- | * function tc_secondary_container_navmenu | + | |
- | * create layout container in xtreme-one for secondary Navigation based on conditionals | + | |
- | * @help: http://xfco.de/secondary-nav-auf-gewissen-seiten-ausblenden | + | |
- | * | + | |
- | * @return: desired navigation menu | + | |
- | */ | + | |
+ | Folgendes kommt nun in die functions.php des ChildThemes: | ||
+ | <code phpwp> | ||
function tc_secondary_container_navmenu(){ | function tc_secondary_container_navmenu(){ | ||
// use conditionals, exclude your desired pages here | // use conditionals, exclude your desired pages here | ||
- | if ( ! is_page( array( 109, 1164 )) ) : | + | if ( ! is_page( array( 109, 1164 ) ) ) : |
- | + | xtreme_navigation( 'secondary' ); | |
- | if ( xtreme_is_html5() ) { | + | |
- | $el = "nav"; | + | |
- | } else { | + | |
- | $el = "div"; | + | |
- | } | + | |
- | + | ||
- | xtreme_start_container( 'secondarynav', 'navigation', $el ); | + | |
- | + | ||
- | $args = array ( | + | |
- | 'container_class' => 'hlist', | + | |
- | // change slug for your menu. The menu that is desired; accepts (matching in order) id, slug, name | + | |
- | 'menu' => 'my-secondary', | + | |
- | 'menu_class' => 'sf-menu' | + | |
- | ); | + | |
- | + | ||
- | wp_nav_menu( $args ); | + | |
- | xtreme_end_container( $el ); | + | |
endif; | endif; | ||
} | } | ||
- | // change hook for your desired position | + | add_action( 'xtreme_before_main', 'tc_secondary_container_navmenu' ); |
- | add_action('xtreme_before_main', 'tc_secondary_container_navmenu'); | + | |
</code> | </code> | ||
+ | Alle Seiten, du nicht mit der secondary Navigation angezeigt werden sollen, müßen in das array bei ''is_page ( array( 109, 1164 )'' ) eingetragen werden. | ||
Falls du ein eigenes stylesheet für deine secondary nav angelegt hast, oder das von dir gewählte nicht mehr geladen wird, verwende den hook ''after_theme_css'' der im Anschluss erklärt wird, um dein [[secondary-nav-auf-gewissen-seiten-ausblenden?#eigenes_stylesheet_integrieren|gewünschtes stylesheet wieder zu integrieren]]. | Falls du ein eigenes stylesheet für deine secondary nav angelegt hast, oder das von dir gewählte nicht mehr geladen wird, verwende den hook ''after_theme_css'' der im Anschluss erklärt wird, um dein [[secondary-nav-auf-gewissen-seiten-ausblenden?#eigenes_stylesheet_integrieren|gewünschtes stylesheet wieder zu integrieren]]. | ||
- | ===== Eigenes stylesheet integrieren ===== | ||
- | Je nachdem, welches Stylesheet du für deine Navigation verwendest, kann es sein,dass dieses durch die Deakrivierung der secondary Navigation nicht mehr geladen wird. | ||
- | Kopiere dir dann einfach den Ordner aus //xtreme-one/css/navigation// und alle darin enthaltenen Dateien(//descriptive.css, shinybuttons.css, slidingdoor.css und superfish.css//) in deinen Childheme Ordner. Falls Du dort schon angepasste Stylesheets hast, brauchst du diese natürlich nicht mehr kopieren. | ||
- | Kopiere dir dann folgendes in die ''functions.php'' des ChildThemes und generiere im Backend von xtreme-one das Theme nochmal. Damit wird sichergestellt, das dein css wieder mit eingebunden wird. Natürlich brauchst du nur die Dateien wieder mit einbinden, die du verwendest. Falls du ein eigenes stylesheet für deine secondary Navigation erstellt hast, musst du dieses auch hier mit integrieren. | + | ==== Hooks für die Navigation mit eigenem Layout container === |
- | <code phpwp> | + | |
- | /* add custom css to array | + | |
- | * copy in your ChildTheme/functions.php and change to your needs | + | |
- | */ | + | |
- | add_filter('after_theme_css', 'my_colorset_css'); | + | |
- | function my_colorset_css($css) { | + | |
- | $css[] = '/css/navigation/shinybuttons.css'; | + | |
- | $css[] = '/css/navigation/slidingdoor.css'; | + | |
- | $css[] = '/css/navigation/superfish.css'; | + | |
- | $css[] = '/css/navigation/eigener-secondary-style.css'; | + | |
- | return $css; | + | |
- | } | + | |
- | </code> | + | |
- | + | ||
- | ===== Zu verwenden mit fogenden hooks: ===== | + | |
<code phpwp> | <code phpwp> | ||
Zeile 112: | Zeile 74: | ||
+ | |||
+ | ===== Secondary Navigation innerhalb eines containers ausgeben ===== | ||
+ | Gehe in deine Einstellungen von xtreme-one:\\ | ||
+ | //Backend xtreme-one -> Navigation// | ||
+ | |||
+ | Als erstes **aktiviert** man die //secondary nav// und wählt das entsprechende Stylesheet (shinybuttons, descriptive,...), welches man für seine Secondary Navigation verwenden will \\ | ||
+ | und wählt das Menu, welches angezeigt werden soll und setzt die anderen Einstellungen, die man für die Ausgabe wünscht. | ||
+ | |||
+ | Dann **deaktiviert** man die secondary Nav wieder, da wir sie über einen hook ausgeben lassen, um conditonals zu verwenden. Die Einstellungen werden in der Datenbank gespeichert und stehen beim Aufruf der ''function xtreme_navigation'' zur Verfügung. | ||
+ | |||
+ | Die Einstellung für die Position spielt hier keine Rolle, da wir diese durch einen entsprechenden hook bestimmen. | ||
+ | |||
+ | Folgendes kommt nun in die functions.php des ChildThemes: | ||
+ | <code phpwp> | ||
+ | function tc_secondary_inside_container_navmenu(){ | ||
+ | // use conditionals, exclude your desired pages here | ||
+ | if ( ! is_page( array( 109, 1164 ) ) ) : | ||
+ | xtreme_header_navigation( 'secondary' ); | ||
+ | endif; | ||
+ | } | ||
+ | // inside of header at the top | ||
+ | add_action( 'xtreme_header_top', 'tc_secondary_inside_container_navmenu' ); | ||
+ | </code> | ||
+ | Alle Seiten, die nicht mit der secondary Navigation angezeigt werden sollen, müßen in das array bei\\ | ||
+ | ''is_page ( array( 109, 1164 )'' ) eingetragen werden. | ||
+ | |||
+ | Falls du ein eigenes stylesheet für deine secondary nav angelegt hast, oder das von dir gewählte nicht mehr geladen wird, verwende den hook ''after_theme_css'' der im Anschluss erklärt wird, um dein [[secondary-nav-auf-gewissen-seiten-ausblenden?#eigenes_stylesheet_integrieren|gewünschtes stylesheet wieder zu integrieren]]. | ||
+ | |||
+ | ==== Hooks für die Navigation innerhalb eines layout containers ==== | ||
+ | <code phpwp> | ||
+ | // inside of header at the top / im Header oben | ||
+ | add_action( 'xtreme_header_top', 'tc_secondary_inside_container_navmenu' ); | ||
+ | |||
+ | // inside header - second area / im Header - zweite Spalte | ||
+ | add_action( 'xtreme_header_col1', 'tc_secondary_inside_container_navmenu' ); | ||
+ | |||
+ | // inside of header at the bottom / im Header unten | ||
+ | add_action( 'xtreme_header_bottom', 'tc_secondary_inside_container_navmenu' ); | ||
+ | |||
+ | // inside header - first area / im Header - erste Spalte | ||
+ | add_action( 'xtreme_header_col3', 'tc_secondary_inside_container_navmenu' ); | ||
+ | |||
+ | // inside of siteinfo at the top / in Siteinfo oben | ||
+ | add_action( 'xtreme_siteinfo_top', 'tc_secondary_inside_container_navmenu' ); | ||
+ | |||
+ | // inside siteinfo - second area / in Siteinfo - 2. Spalte | ||
+ | add_action( 'xtreme_siteinfo_col1', 'tc_secondary_inside_container_navmenu' ); | ||
+ | |||
+ | // inside of siteinfo at the bottom / in Siteinfo unten | ||
+ | add_action( 'xtreme_siteinfo_bottom', 'tc_secondary_inside_container_navmenu' ); | ||
+ | |||
+ | // inside siteinfo - first area / in Siteinfo - 1. Spalte | ||
+ | add_action( 'xtreme_siteinfo_col3', 'tc_secondary_inside_container_navmenu' ); | ||
+ | </code> | ||
+ | |||
+ | ===== Eigenes stylesheet integrieren ===== | ||
+ | Je nachdem, welches Stylesheet du für deine Navigation verwendest, kann es sein, daß dieses durch das Abschalten der Secondary Navigation nicht mehr geladen wird. | ||
+ | |||
+ | Kopiere dir dann einfach den Ordner aus //xtreme-one/css/navigation// und alle darin enthaltenen Dateien(//descriptive.css, shinybuttons.css, slidingdoor.css und superfish.css//) in deinen Childheme Ordner. Falls Du dort schon angepasste Stylesheets hast, brauchst du diese natürlich nicht mehr kopieren. | ||
+ | |||
+ | Kopiere dir dann folgendes in die ''functions.php'' des ChildThemes und generiere im Backend von xtreme-one das Theme nochmal. Damit wird sichergestellt, das dein css wieder mit eingebunden wird. Natürlich brauchst du nur die Dateien mit einbinden, die du verwendest. Falls du ein eigenes stylesheet für deine secondary Navigation erstellt hast, mußt du dieses auch hier mit integrieren. | ||
+ | <code phpwp> | ||
+ | /* add custom css to array | ||
+ | * copy in your ChildTheme/functions.php and change to your needs | ||
+ | */ | ||
+ | add_filter('after_theme_css', 'my_colorset_css'); | ||
+ | function my_colorset_css($css) { | ||
+ | $css[] = '/css/navigation/shinybuttons.css'; | ||
+ | $css[] = '/css/navigation/slidingdoor.css'; | ||
+ | $css[] = '/css/navigation/superfish.css'; | ||
+ | $css[] = '/css/navigation/eigener-secondary-style.css'; | ||
+ | return $css; | ||
+ | } | ||
+ | </code> | ||
+ | ===== Eigenes Seitentemplate verwenden ===== | ||
+ | Birgit Olzem hat auch noch ein Lösungsvorschlag für die Anzeige / Nicht Anzeige einer Navigation auf bestimmten Seiten.\\ | ||
+ | //Wenn du aber für die speziellen Seiten, die keine Secondary Nav haben sollen, ein eigenes Seitentemplate anlegst, kannst du das auch wie folgt in der functions.php einbinden:// | ||
+ | <code phpwp> | ||
+ | function my_secondary_navmenu(){ | ||
+ | if ( ! is_page_template( 'special-page.php' ) ) : | ||
+ | xtreme_navigation( 'secondary' ); | ||
+ | endif; | ||
+ | } | ||
+ | add_action( 'xtreme_before_main', 'my_secondary_navmenu' ); | ||
+ | </code> | ||
+ | |||
+ | Diese Lösung funktioniert natürlich nur bei Verwendung von Seiten.\\ | ||
+ | Wenn man also für bestimmte Beiträge oder Kategorien die Ausgabe für die Navigation selbst steuern will, ist eine der beiden Lösungen oben der richtige Ansatz. Man muß dann die conditional natürlich an die eigenen Bedürfnisse anpassen. |