【问题标题】:Warning after dragging widget into widget area in Wordpress将小部件拖动到 Wordpress 中的小部件区域后发出警告
【发布时间】:2015-03-20 06:10:27
【问题描述】:

在我将一个小部件(比如说“搜索”)拖到小部件区域“页脚”后,我收到一个错误:“警告:sprintf():C:\xampp\apps\ 中的参数编号必须大于零wordpress\htdocs\wp-includes\widgets.php 在第 1199 行"。

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>',
    ));
  }
}

【问题讨论】:

  • 能否包含您的functions.php 中用于注册侧边栏的代码?
  • 好的,我刚刚添加了这段代码。我看不到任何错误。

标签: wordpress widget


【解决方案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=

【讨论】:

  • 这行得通,太棒了!非常感谢你,卡尔! (奇怪的是 MAC OS/MAMP 没有抱怨,但 Windows/XAMPP 抱怨了。)
猜你喜欢
  • 2015-07-17
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2011-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多