Dynamische Seitenleisten auf mehreren Unterseiten

Ich baue eine Website in WordPress. Es hat mehrere Unterseiten, von denen viele unterschiedliche Seitenleisten benötigen. Also, ich habe ein Widget-Thema und ich habe auch ein paar SidebarWidgets erstellt.

Ich habe eine bedingte statement geschrieben, um verschiedene Seitenleisten auf verschiedenen Seiten anzuzeigen. Eine Widgetleiste wird jedoch trotz der bedingten statement auf fast allen Seiten angezeigt.

Die Seitenleiste, die auf der gewünschten Seite erscheint, kann hier eingesehen werden: http://www.africanhealthleadership.org/about/approach/

Die Unterseite, die eine andere Seitenleiste haben sollte, befindet sich unter Wissensressourcen> Recherche

Der Code ist wie folgt. Ich bin ein totaler PHP-Spazz, also habe ich wahrscheinlich etwas Dummes gemacht. Ich habe einfache Anführungszeichen um dynamic_sidebar (2) versucht, aber das hat nicht funktioniert.

Danke für jede Hilfe.

 

Solutions Collecting From Web of "Dynamische Seitenleisten auf mehreren Unterseiten"

Einfacher und eleganter (höhere Wartbarkeit):

 < ?php // Your sidebar should have the wp_meta action hook wp_meta(); // in ex. your functions.php function my_sidebar_content() { // "About" Page if ( is_page('about') ) { // If some widget is added via Admin > Design > Widgets if ( is_active_sidebar( 'widgets-sidebar-default' ) ) { // Display Widgets dynamic_sidebar( 'widgets-sidebar-default' ); } // Default Content before Widgets were added else { _e('default static content', TEXTDOMAIN); } } // "Links" Page elseif ( is_page('links') ) { if ( is_active_sidebar( 'widgets-sidebar-links' ) ) { dynamic_sidebar( 'widgets-sidebar-links' ); } else { _e('default static content', TEXTDOMAIN); } } } add_action( 'wp_meta', 'my_sidebar_content', 10 ); # =================================================== // OR: wp_meta(); // functions.php function load_my_sidebars() { // "About" Page if ( is_page('about') ) { get_template_part( 'sidebar_content', 'default' ); } // "Links" Page elseif ( is_page('links') ) { get_template_part( 'sidebar_content', 'links' ); } } add_action( 'wp_meta', 'load_my_sidebars', 10 ); // in sidebar_content-default.php // If some widget is added via Admin > Design > Widgets // You can add any static content right here before the widgets if ( is_active_sidebar( 'widgets-sidebar-default' ) ) { // Display Widgets dynamic_sidebar( 'widgets-sidebar-default' ); } // Default Content before Widgets were added else { _e('default static content', TEXTDOMAIN); } // You can add any static content right here after the widgets // in sidebar_content-links.php if ( is_active_sidebar( 'widgets-sidebar-links' ) ) { dynamic_sidebar( 'widgets-sidebar-links' ); } else { _e('default static content', TEXTDOMAIN); } ?> 

Ich weiß nicht, warum irgendjemand überprüft, ob dynamic_sidebar existiert. Es gibt jetzt 9 große Veröffentlichungen. Ich hoffe wirklich, dass Sie nicht für 2.1 oder niedriger entwickeln. Versuche dies:

 if( is_page('approach') ) dynamic_sidebar(1); elseif( is_page('research') ) dynamic_sidebar(2); 

Wenn Sie die bestimmte Seite kennen, die Sie verwenden möchten, kümmern Sie sich nicht um den Subseiten-Müll. Außerdem überprüft diese function nur, ob Sie sich auf einer Unterseite befinden, aber Sie erfahren nicht, ob Sie sich auf einer bestimmten Unterseite befinden.

Sie könnten einfach die “Widget Logic” -Erweiterung verwenden, so dass Sie keine Schreibunterstützung für benutzerdefinierte Widgets in der Seitenleiste in die eigentliche Vorlage benötigen.