使用WordPress 3.5 的朋友在使用某些插件时,也许会遇到这样的WordPress错误:Missing argument 2 for wpdb::prepare():
报错原因
从提示语来看,是缺少了 wpdb::prepare() 的第二个参数,从技术上 WordPress 这样修改 prepare
并没有错,因为这是用来组装 SQL 语句的方法, 按常理来说必须有带变量的字符串作为第一个参数和第二个作为变量的参数,这是为了避免 SQL 注入所引起的安全问题。但是 WordPress 从 2.2 或者更早版本允许了忽略第二个参数的写法, 现在突然令第二个参数成为必填, 必然导致很多主题和插件不能正常使用。
解决办法
1.打开出错的文件(类似上图加亮的文件),还有出错行数,这样我们可以很方便地找到出错的地方,或者搜索$wpdb->prepare
2.为该方法添加一个空串作为第二个参数, 比如: $wpdb->prepare('xxx');
改为 $wpdb->prepare('xxx', '');
即可.
来源:
https://www.wpdaxue.com/wpdb-prepare-fixed.html