无论服务器设置如何,WordPress总是添加神奇的引号。这确保了一致性,无论环境如何。尽管魔法引号已经从PHP中删除或弃用,WordPress仍保留这种行为,以向后兼容旧版本的PHP和使用旧版本PHP编写的插件。
如果要删除斜杠,可以使用stripslashes()
或stripslashesdeep()
:
$_POST = stripslashes_deep( $_POST );
请记住,由于这种行为,WordPress的某些部分需要经过删减的数据。查看以下引用自
an announcement regarding the REST API:
我们将不一致的删减数据视为一个主要错误,并正在更改API基础架构以确保未删减的数据。这将确保无论数据来自何方,数据都是一致的。回调现在将只接收未刷新的数据,并且无论原始数据源或请求方法如何,都可以依赖于此。
如果您使用的函数期望在回调中使用斜杠数据,则需要在传递到这些函数之前斜杠数据。需要斜杠数据的常用函数有wp_insert_post
, wp_update_post
, update_post_meta
, wp_insert_term
, wp_insert_user
, 和其他人一起。在将数据传递给这些函数之前,必须调用wp_slash()
在您的数据上。
虽然这是关于RESTAPI的,但如果您在自己的代码中更改斜杠的行为,您可能会遇到同样的问题。