WordPress 3.5 与 wpdb::prepare() 报错
WordPress 3.5 正式宣布, 这个版本包罗大量更新。 启用了最新的相应式机关默认主题 Twenty Twelve; 改版了 Admin 界面, 越发简捷并且针对移动装备举办了优化; Media 成果也获得极大的进步, 此刻越发没有来由行使其他图床处事了。 好话说完了, 是时辰 “可是” 了。 可是.... WordPress 承袭不停的作风, 也偷偷改了一些内部要领, 此刻wpdb::prepare() 必需填入第二个参数, 不然报错如下。 Warning: Missing argument 2 for wpdb::prepare(), called in xxx.php on line 75 and defined in /www/wp-includes/wp-db.php on line 990 wpdb::prepare() 的第二个参数 从技能上 WordPress 这样修改 prepare 并没有错, 由于这是用来组装 SQL 语句的要领, 按常理来说必需有带变量的字符串作为第一个参数和第二个作为变量的参数。 可是 WordPress 从 2.2 可能更早版本应承了忽略第二个参数的写法, 此刻溘然令第二个参数成为必填, 肯定导致许多主题和插件不能正常行使。 我宣布的全部 WordPress 主题和最新评述插件 WP-RecentComments 都中枪了。 感激 neoner 提示, 半个月前我更新 WP-RecentComments 办理了这个题目, 但还没偶然刻改主题, 由于主题考核太贫困了。 办理步伐 在更新主题之前, 我先在这里说说办理步伐, 让用户们本身可以先办理一下, 信托尚有其他主题可能插件也许也会有相同题目, 但愿对各人有辅佐。 我们必要先定位呈现题目的文件和代码。 PHP 的代码报错很精准的, 打开报错提示中的文件 (前一个文件, 不是 wp-db.php), 找到代码 $wpdb->prepare. 为该要领添加一个空串作为第二个参数, 好比: $wpdb->prepare(‘xxx’); 改为 $wpdb->prepare(‘xxx’, ‘’); 即可。 总结 WordPress 也不是第一次偷偷修改要领挪用方法了, WordPress 2.7 的时辰也要求 comments_template 必需输入第二个要领, 可是其时是为了扩展成果, 这次我真的不解。 我揣摩在故意裁减一些不起劲更新的主题很插件呢? 但我的主题显着向后兼容做得很好的, 其实太没节操了. 文章来历:neoease.com (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |