如何添加多个自定义微件区域

时间:2019-01-14 作者:Steve Kondiaynnis

我希望在我的主题中向一个页面添加多个小部件区域,因为我希望在某些页面中有小部件。我可以用这段代码添加一个,我只需要一秒钟。

function new_sidebar_widget_init() {

register_sidebar( array(
    \'name\' => \'new-sidebar\',
    \'id\' => \'new-sidebar\',
    \'before_widget\' => \'<div id="new-sidebar">\',
    \'after_widget\' => \'</div>\',
    \'before_title\' => \'\',
    \'after_title\' => \'\',
) );
}
add_action( \'widgets_init\', \'new_sidebar_widget_init\' ); 
然后将其放在我的页面上:

<?php  dynamic_sidebar( \'new-sidebar\' ); ?> 

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

您必须注册多个区域:

function new_sidebar_widget_init() {
   register_sidebar( array(
        \'name\' => \'new-sidebar\',
        \'id\' => \'new-sidebar\',
        \'before_widget\' => \'<div id="new-sidebar">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'\',
        \'after_title\' => \'\',
    ) );
    register_sidebar( array(
        \'name\' => \'new-sidebar-1\',
        \'id\' => \'new-sidebar-1\',
        \'before_widget\' => \'<div id="new-sidebar">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'\',
        \'after_title\' => \'\',
    ) );
}
add_action( \'widgets_init\', \'new_sidebar_widget_init\' ); 
然后您可以根据其ID使用它们:

<?php  dynamic_sidebar( \'new-sidebar\' ); ?> 

<?php  dynamic_sidebar( \'new-sidebar-1\' ); ?> 

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'