将一个小部件(让我们说“搜索”)拖到小部件区域“Footer”后,我收到一个错误:“警告:sprintf():C:\ xampp \ apps \中的参数编号必须大于零第1199行的wordpress \ htdocs \ wp-includes \ widgets.php“。
WP-core的widgets.php中的这一行正在确定before-widgets参数。我使用自定义小部件区域,我在主题的主根文件夹中的“functions.php”中包含了register_sidebar。
之前我没有遇到过这个问题,我从MAC导入了包含主题数据的整个文件夹。我知道APACHE进行了多次安全检查,但不应该涉及主题文件夹中的数据。
我使用最新的Wordpress版本4.1。为什么我会收到此错误?
编辑:这是functions.php中的代码,它生成小部件区域:
function vidaneo_widgets_init() {
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'Header',
'description' => 'Header mit Logo, Navigation und Banner',
'before_widget' => '<div class="header">',
'after_widget' => '</div>',
'after_title' => '</h6>',
));
register_sidebar( array(
'name' => 'Hauptbereich (links)',
'id' => 'sidebar-content',
'description' => 'Hauptbereich links',
'class' => 'content',
'before_widget' => '<div class="widget"',
'after_widget' => '</div>',
'before_title' => '<h3 class="content-title">',
'after_title' => '</h3>',
));
register_sidebar(array('name' => 'Sidebar rechts',
'id' => 'sidebar-right',
'description' => 'Seitenbereich rechts',
'before_widget' => '<div id="%1$s" class="widget %$s"',
'after_widget' => '</div>',
'before_title' => '<h6>',
'after_title' => '</h6>',
));
register_sidebar(array(
'name' => 'Footer',
'description' => 'Container für Footer-Widgets',
'before_widget' => '<div id="%1$s" class="widget %$s"',
'after_widget' => '</div>',
'before_title' => '<h6>',
'after_title' => '</h6>',
));
}
}
答案 0 :(得分:1)
我想我看到了问题。
'before_widget' => '<div id="%1$s" class="widget %$s"',
具体来说是class="widget %$s"
。 $在sprintf中用于参数交换。它要求您在它前面加一个数字。由于传入的参数只有2个,所以应该可以正常工作:
'before_widget' => '<div id="%s" class="widget %s"',
或者,如果你想把$保留在那里。
'before_widget' => '<div id="%s" class="widget %2$s"',
这是sprintf页面供参考:
HTH,
= C =