WordPress multisite中的这个问题已经存在了两到三个月,我仍在等待解决方案或更新。
添加新站点时,出现以下错误:
警告:preg\\u match()要求参数2为字符串,wp中给定的对象包含/格式化。php在线3435
警告:preg\\u match()要求参数2为字符串,wp中给定的对象包含/格式化。php在线3424
警告:preg\\u match()要求参数2为字符串,wp中给定的对象包含/格式化。php在线3435
警告:strip\\u tags()要求参数1为字符串,wp中给定的对象包含/格式化。php在线3407
警告:strip\\u tags()要求参数1为字符串,wp中给定的对象包含/格式化。php在线3407
可捕获的致命错误:类WP\\u error的对象无法转换为WP includes/kses中的字符串。php在线1038
有没有人在不威胁数据库的情况下找到了安全的解决方案?
我已经找到了一些关于this post. 他们说我们应该改变以下价值:
define(\'DB_COLLATE\', \'\');
收件人:
define(\'DB_COLLATE\', \'utf8mb4_general_ci\');
我们的网站安全吗?
我们的网站上有很多帖子,我们不想给我们的数据库和网站带来任何问题。
最合适的回答,由SO网友:Milad 整理而成
这个问题在WordPress的下一次更新中得到了解决。顺便说一下,如果您还没有更新WordPress的版本:
在wp配置中设置DB\\U COLLATE就足够了。php:
define(\'DB_COLLATE\', \'utf8mb4_general_ci\'); // on condition that your DB_CHARSET is \'utf8mb4\'
就是这样!
错误隐藏在文件\\wp includes\\wp db中。函数init\\u charset()中731行的php。对于多站点模式,如果DB\\U COLLATE为空,则使用“utf8\\U general\\U ci”排序规则。如果DB\\u字符集为“utf8mb4”,则会发生错误。
为新站点创建并查询不存在的表时会出现实际错误(“2”会随着站点数量的变化而变化):
wp\\U 2\\U条款
wp\\U 2\\U term\\U分类法
wp\\u 2\\u term\\u关系
wp\\U 2\\U commentmeta
wp\\U 2\\U注释
wp\\U 2\\U链接
wp\\U 2\\U选项
wp\\u 2\\u邮差
wp\\U 2\\U岗位
someone suggested this solution 而且效果很好。