我正在尝试消除调试中的以下错误:
Notice: register_sidebar was called <strong>incorrectly</strong>.
No <code>id</code> was set in the arguments array for the "Header" sidebar.因此,当我注册该侧栏时,我添加了如下所示的id参数:
register_sidebar(array(
'id' => 'header-sidebar',
'name' => 'Header',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
));现在,无论是使用name字段还是id字段,dynamic_sidebar总是返回false。
我试过:
dynamic_sidebar( 'Header' );和
dynamic_sidebar( 'header-sidebar' );我的理解是以上两者都应该有效。注意,如果我注释掉register_sidebar调用中的id参数并使用dynamic_sidebar( 'Header' );,一切都可以正常工作。我遗漏了什么?
这是WP 4.2.2。
因此,根据这些说明:列出所有侧边栏的名字?能够列出所有的侧栏名称,并且当我用register_sidebar设置id参数时,名称列表中的id会发生更改。我现在使用的特定侧边栏在设置id之前是‘侧栏-5’,之后是‘侧栏-jsp’。一旦设置了id字段,我就不能使用名为'Sidebar‘、原始id’侧栏-5‘或新id’侧栏-jsp‘的dynamic_sidebar。
根据S_ha_dum的建议,我在函数中封装了一个侧栏,以便在“widgets_init”之后实现。这是行不通的。
function register_header_sidebar_jsp() {
register_sidebar(array(
'name' => 'Sidebar',
'id' => 'sidebar-jsp',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
));
}
add_action( 'widgets_init', 'register_header_sidebar_jsp' );我现在用的是:
<?php var_dump(dynamic_sidebar('sidebar-jsp')); ?>我不知道这是怎么回事,但我没有一整天的时间来处理这件事。谢谢大家的建议。
发布于 2015-06-05 20:53:29
当我测试你的代码时。我只能假设注册代码被过早地或太晚地连接到系统中。register_sidebar()应该钩住widgets_init根据法典。因此:
function register_header_sidebar_wpse_190618() {
register_sidebar(
array(
'id' => 'header-sidebar',
'name' => 'Header',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
)
);
}
add_action( 'widgets_init', 'register_header_sidebar_wpse_190618' );发布于 2015-06-05 18:30:13
<?php dynamic_sidebar( 'new-header-sidebar' ); ?>
register_sidebar( array(
'name' => __( 'Header', 'theme-slug' ),
'id' => 'new-header-sidebar',
) );你可能有身份证冲突,所以试着改变身份证
https://wordpress.stackexchange.com/questions/190618
复制相似问题