Warum wird für jede Seite eine Seitenleiste registriert, die zum Zurücksetzen meiner Seitenleisten führt?

Ich habe den folgenden Code in meiner functions.php

if ( function_exists('register_sidebars') ){ $pages=get_pages(); foreach($pages as $page){ register_sidebar(array('name'=>$page->post_title, 'sort_column'=>'ID','sort_order'=>'ASC', 'id'=>$page->ID)); } } 

Es funktioniert wunderbar, um mir eine Seitenleiste für jede Seite zu geben. Das Problem ist, dass der Sidebar Contest ständig zurückgesetzt wird. Jedes Mal, wenn ich zu meiner Widgets-Seite zurückkehre, sind die Seitenleisten leer. Normalerweise kann ich den Inhalt auf der aktuellen Seite sehen, es sei denn, ich aktualisiere etwas in einer anderen Seitenleiste. Wenn ich die Schleife raushole und einfach register_sidebar verwende, um eine einzelne Sidebar zu registrieren, scheint alles in Ordnung zu sein. Irgendwelche Ideen warum?

Solutions Collecting From Web of "Warum wird für jede Seite eine Seitenleiste registriert, die zum Zurücksetzen meiner Seitenleisten führt?"

Sie müssen dies in eine function einfügen und dann zur Aktion widgets_init hinzufügen. Auch die Register Sidebar function hat keine $ Argumente für sort_column oder sort_order. Ich würde auch die ID in 'sidebar-'.$page->ID ändern 'sidebar-'.$page->ID

 add_action( 'widgets_init', 'prefix_register_sidebars' ); function prefix_register_sidebars() { foreach($pages as $page){ register_sidebar( array( 'name'=>$page->post_title, 'id'=> 'sidebar-'.$page->ID, 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' ) ); }