2015-01-21 3 views
0

После того, как я перетащил виджет (скажем, «Поиск») в область виджета «Нижний колонтитул», я получаю сообщение об ошибке: «Предупреждение: sprintf(): Аргумент должен быть больше, чем ноль в C: \ xampp \ apps \ wordpress \ htdocs \ wp-includes \ widgets.php в строке 1199 ".Предупреждение после перетаскивания виджета в область виджета в Wordpress

Эта строка в widgets.php WP-ядра определяет аргументы before-widgets. Я использую настраиваемые области виджетов, которые я включил в register_sidebar в «functions.php» в основной корневой папке моей темы.

У меня не было таких проблем раньше, я импортировал всю папку с данными темы из MAC. Я знаю, что APACHE выполняет несколько проверок безопасности, но это не должно включать данные в папку темы.

Я использую новейшую версию Wordpress 4.1. Почему я получаю эту ошибку?

EDIT: Вот код в 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

Вы можете включить код из вашего functions.php, который вы используете для регистрации боковая панель? –

+0

Хорошо, я просто добавил этот код. Я не вижу в нем никаких ошибок. – Pille

ответ

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

НТН,

= C =

+0

Это работает, отлично! Большое спасибо, Кэл! (Странно, что MAC OS/MAMP не жаловался, кроме Windows/XAMPP). – Pille

Смежные вопросы