WordPressで構築しているサイトをWordpress 3.5にアップデートしたところ、投稿表示の先頭にワーニングが。。。
Warning: Missing argument 2 for wpdb::prepare(), called in /home/sites/web/wp-content/plugins/sharebar/sharebar.php on line 112 and defined in /home/sites/web/wp-includes/wp-db.php on line 990
Warning: Missing argument 2 for wpdb::prepare(), called in /home/sites/web/wp-content/plugins/sharebar/sharebar.php on line 124 and defined in /home/sites/web/wp-includes/wp-db.php on line 990
Sharebarプラグインで問題が発生しているようだが、まずはWordpress3.5のアップデートに関してGoogleで調査してみた。
すると、以下の記事が(英語ですが)
PHP Warning: Missing argument 2 for wpdb::prepare()
どうやら、WP3.5からSQLインジェクションを防止するためにDBのprepare関数にパラメータが増えたようだ。
Sharebarプラグインを無効にしてプラグインのアップデートが出るまで待つかとも考えたが、Sharebarプラグインは最近導入したばかりのお気に入りの機能だったため、コードを修正することに。
Sharebarプラグインの該当コードは以下の通り。
[112行目]
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$wpdb->prefix."sharebar WHERE enabled=1 ORDER BY position, id ASC")); $str .= "\n";
[124行目]
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$wpdb->prefix."sharebar WHERE enabled=1 ORDER BY position, id ASC")); $str .= "\n";
それぞれ、増えたパラメータにnullを追加してみる。
[112行目]
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$wpdb->prefix."sharebar WHERE enabled=1 ORDER BY position, id ASC", null)); $str .= "\n";
[124行目]
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$wpdb->prefix."sharebar WHERE enabled=1 ORDER BY position, id ASC", null)); $str .= "\n";
動作確認してみると、問題なさそう。
Sharebarプラグインのアップデートがリリースされるまで、これでいこうと思います。
同じ問題で困っている方の参考になれば幸いです。