Dynamische Seitenleisten basierend auf dem Seitennamen

Ich würde gerne eine dynamische Seitenleiste für meine WordPress-Seite erstellen, also würde sie die korrekte Sidebar-Vorlage basierend auf dem Seitentitel der Seite einfügen.

Also wenn ich 10 Seitenleisten hätte, die alle so heißen:

Name der Seitenleiste: Name der Seitenleiste Name der Vorlage: Name der Seitenleiste der Benutzeroberfläche: Name der Seitenleiste der Taskleiste: Name der Seitenleiste der Taskleiste: Page1

So würde die Seitenleiste “Über” auf der About-Seite erscheinen, und das Gleiche für den Kontakt usw.

Irgendeine Idee Wie würde ich das machen? Oder gibt es einen alternativen Weg, wie man es macht?

Solutions Collecting From Web of "Dynamische Seitenleisten basierend auf dem Seitennamen"

So etwas sollte funktionieren:

if( is_page() ) : $this_page = get_queried_object(); if ( ! dynamic_sidebar( $this_page->post_title ) ) : echo 'No sidebar defined for this page title'; endif; endif; 

Sie können versuchen, beim Erstellen einer neuen Vorlage verschiedene Seitenleisten einzubeziehen

Benennen Sie eine Seitenleiste wie sidebar-jobs.php. Wenn Sie einen Vorlagennamen erstellen : Jobs , rufen Sie diese Seitenleiste einfach so auf

 < ?php get_sidebar('jobs'); ?> 

Erstellen Sie Metabox und listen Sie alle registrierten Seitenleisten auf

  

dann basierend auf ausgewählten Wert – Anruf ausgewählten Sidebar

Hier ist ein Live-Beispiel von einer meiner Seiten:

 if(is_page('about-us')) { dynamic_sidebar('main-sidebar'); } if(is_page('contribute')) { dynamic_sidebar('page-sidebar'); } if(is_front_page() && is_page('about-us')) { dynamic_sidebar('main-sidebar'); } if(!is_front_page() && is_page('about-us')) { dynamic_sidebar('another-sidebar'); } if(is_category('archive')) { dynamic_sidebar('archive-sidebar'); } 

Sie können verschiedene Szenarien sehen, wo ich verschiedene Widgets brauche.

Auch in functions.php habe ich diesen Code:

 if(function_exists('register_sidebar')) { register_sidebar(array('name' => 'Homepage Sidebar')); register_sidebar(array('name' => 'Blog Sidebar')); register_sidebar(array( 'name' => __('Main Sidebar'), 'id' => 'main-sidebar', 'description' => 'This sidebar is active on Homepage, Despre Noi, Directioneaza 2%, and individual profiles.' )); register_sidebar(array( 'name' => __('Archive Sidebar'), 'id' => 'archive-sidebar', 'description' => 'This sidebar is active on Archive page.' )); }