WP_INSERT_POST:仅数组。WP_UPDATE_POST:ARRAY|对象(?)

时间:2016-08-14 作者:C C

我刚注意到PHPStorm“抱怨”,我的第一个论点wp_insert_post 是一个对象,其中需要数组。

我还注意到,对于wp_upate_post.

重构代码以在每次调用wp_insert_post, 而且,这种不匹配似乎没有引起任何问题——我想它是由PHP自动转换的(?)

这是我应该解决的问题,还是按原样离开比较安全?我想这可能是PHP比WP更关心的问题。

我觉得奇怪的是,像这样两个密切相关的函数有不同的参数类型规范。

1 个回复
最合适的回答,由SO网友:TheGentleman 整理而成

从技术上讲,这两种方法都是首选阵列,但实际上这并不重要。PHP没有将对象强制转换为数组,而worpress是。wp_insert_post(), 像许多wordpress函数一样,通过wp_parse_args() 它将把传递给它的对象强制转换为数组,并始终返回一个数组。

您应该解决这个问题,以防wordpress发布更新时停止为您强制转换对象,如果您尝试将对象用作数组,PHP将抛出致命错误。但坦率地说,这个角色很可能不会很快被移除。

如果你真的想修复它,你所要做的就是更换

wp_insert_post($object);
使用

wp_insert_post(get_object_vars($object));