首先,你可以(应该?)注册侧栏通常不需要特定的挂钩(和widgets_init
可能不是最好的)。其次,您不需要指定ID,因为它们是自动生成的。当然可以,但也没有必要。
只需在您的functions.php
:
register_sidebar( array(
\'name\' => __( \'Sidebar 1\', \'fp\' ),
// \'id\' => \'sidebar1\',
\'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h4 class="widget-title">\',
\'after_title\' => \'</h4>\',
) );
register_sidebar( array(
\'name\' => __( \'Sidebar 2\', \'fp\' ),
// \'id\' => \'sidebar2\',
\'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h4 class="widget-title">\',
\'after_title\' => \'</h4>\',
) );
要检查当前小部件中所有已注册的边栏(以及非活动的边栏等),只需执行以下操作:
$sidebars = wp_get_sidebars_widgets();
echo \'<pre>\'.print_r($sidebars, true).\'</pre>\';
要检查给定的侧栏ID,可以执行以下操作(就像您所做的那样):
if (array_key_exists(\'sidebar1\', $sidebars))
echo \'Sidebar 1 is registered.\';
关于旧边栏的问题。只要侧边栏中有小部件,它们就被存储(作为数组)用于相应的侧边栏ID。如果您想在主题之间共享侧边栏小部件设置,您必须注册相同的侧边栏(ID)。