我遇到了这个问题
从主题安装插件后(警告:sprintf():参数太少
。我还在学习PHP
。有些人可以帮助修复这个错误引用的代码。
这是代码:
if ( $this->result && ! is_wp_error( $this->result ) ) {
if ( ! $this->error ) {
echo '<div class="updated js-update-details" data-update-details="progress-' . esc_attr( $this->upgrader->update_current ) . '">' .
'<p>' . sprintf( $this->upgrader->strings['skin_update_successful'], $title ) .
' <button type="button" class="hide-if-no-js button-link js-update-details-toggle" aria-expanded="false">' . __( 'Show details.' ) . '</button>' .
'</p></div>';
}
echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').hide();</script>';
}
答案 0 :(得分:0)
此警告消息表示$this->upgrader->strings['skin_update_successful']
拥有更多占位符(如%s
),而不是将变量传递到sprintf
(仅传递$title
)。只需检查$this->upgrader->strings['skin_update_successful']
中的字符串(您可以打印出来)。
例如,此代码将抛出相同的警告消息:
<?php
sprintf('foo %s %s', 'bar');
答案 1 :(得分:0)
就我而言:
$data = call_web_service(); // return array()
foreach ($data as $d)
echo sprintf("<div>our %65 discount is : %s </div>",
$d["discount"]
);
在我的字符串中使用%65
sprintf搜寻每一个%,如果它们的计数不等于您的参数,则会返回此错误