将小部件拖动到Wordpress中的小部件区域后发出警告

时间:2015-01-21 16:23:32

标签: wordpress widget

将一个小部件(让我们说“搜索”)拖到小部件区域“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>',
    ));
  }
}

1 个答案:

答案 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页面供参考:

http://php.net/sprintf

HTH,

= C =