wpのバージョンアップを頼まれ作業していたところ、使用しているプラグインで以下のエラーが発生しました。
解決方法を模索しているのですが、解決することができないため、知恵をお借りしたく投稿した次第です。
前提
以下の環境にアップーデートしたところプラグインエラーを発見しました。
動作環境
・php 7.2.10
・MySQL 5.7.17
発生したエラーメッセージ
Notice: wpdb::prepare が誤って呼び出されました。wpdb::prepare() のクエリ引数にはプレースホルダーが必要です。 Notice: wpdb::prepare が誤って呼び出されました。渡された引数の数 (1) に対する適正なプレースホルダー数 (0) がクエリーに含まれていません。
該当箇所と思われるソースコード
php
1$dummyArgs = "%s%"; 2 3//間取り 4$sql = " SELECT DISTINCT PM.meta_value AS madorisu,PM_2.meta_value AS madorisyurui"; 5$sql .= " FROM ((($wpdb->posts AS P"; 6$sql .= " INNER JOIN $wpdb->postmeta AS PM ON P.ID = PM.post_id) "; 7$sql .= " INNER JOIN $wpdb->postmeta AS PM_1 ON P.ID = PM_1.post_id) "; 8$sql .= " INNER JOIN $wpdb->postmeta AS PM_2 ON P.ID = PM_2.post_id) "; 9 10//検索 SQL 表示制限 INNER JOIN 11$sql .= apply_filters( 'inc_archive_kensaku_sql_inner_join', '' ); 12 13$sql .= " WHERE P.post_status='publish' AND P.post_password = '' AND P.post_type ='fudo' "; 14$sql .= " AND PM_1.meta_key='bukkenshubetsu'"; 15$sql .= " AND CAST( PM_1.meta_value AS SIGNED ) ".$shu_data.""; 16$sql .= " AND PM.meta_key='madorisu'"; 17$sql .= " AND PM_2.meta_key='madorisyurui'"; 18 19//検索 SQL 表示制限 WHERE 20$sql .= apply_filters( 'inc_archive_kensaku_sql_where', '' ); 21 22$sql = $wpdb->prepare($sql,$dummyArgs);
試したこと
その1.
$sql = $wpdb->prepare($sql,$dummyArgs);
上記の一文を停止するとエラーが表示されなくなりました。
そのため、上記コードの記述が原因と考えております。
その2.
$wpdb->prepare($sql,$dummyArgs);
の第二引数の値を0やnullに変更してみたりしましたが、エラーは解消されませんでした。
何か、指摘点やアドバイスをいただけますと幸いです。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/26 08:06