我将WordPress更新到了最新的3.6版本,并收到了关于wpdb::prepare()的警告。
这是该主题的滑块插件的一个问题。我不知道如何编辑$wpdb->prepare这个文件,使它与新的WP版本一起工作。
<?php $item_count = 0; foreach ($sliders as $key => $slider){ $cur_slider_id = $key+1; $item_count = $wpdb->get_var($wpdb->prepare("SELECT count(c_id) FROM ". $item_table ." WHERE s_id = '". $cur_slider_id ."'")); ?>
$count_filter = $wpdb->get_var($wpdb->prepare("SELECT count(id) FROM ". $item_table ." WHERE c_id REGEXP '(^".$d.",)|(,".$d."$)|(,".$d.",)|^".$d."$'"));
$item_count = $wpdb->get_var($wpdb->prepare("SELECT count(c_id) FROM ". $item_table ." WHERE c_id RLIKE '^".$h."$' OR c_id RLIKE ',".$h."$' OR c_id RLIKE '^".$h.",' OR c_id RLIKE ',".$h.",' " ));
我有这3行包含$wpdb->prepare(),请帮助如何将其更改为WP 3.6接受它的方式?
谢谢你,
当我在wp-config.php文件中通过这段代码时,我非常高兴。警告消息没有再次显示。
@ini_set('display_errors', 0);
$item_table在哪里定义?也许把它打印出来,以确保它得到你想要的。
将"null"作为第二个参数添加到函数中可以完全解决问题。
您使用wpdb->prepare()
函数的方式不对。阅读http://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/找出如何正确修复它。