我正在为WordPress网站开发API。基本上,外部应用程序(不是使用WP创建的)能够将JSON发送到我创建的文件中(api.php
) 在该文件中,我加载WP(使用wp-load.php
), 并基于收到的JSON创建一个post(自定义post类型)。
当我看到这段代码时。。。
$formation_fr = wp_insert_post( array(
\'post_type\' => \'formation\',
\'post_title\' => \'example post\',
\'post_status\' => \'publish\',
\'post_author\' => 2 // This is an admin account associated with this ID
) );
。。。帖子被创建,除了
post_author
(相反,这篇文章没有作者)。但是,发送CURL请求的外部应用程序将收到以下内容:
Error: call to URL http://domain.com/api/api.php failed with status 500, response
Alors, on triche ?
, curl_error , curl_errno 0`
“阿洛尔,在特里奇?”错误是“作弊”呃法语错误。WordPress出于某种原因认为我在试图规避功能。
如果我尝试使用此代码块以编程方式登录用户(ID:2)。。。
private function login( $id )
{
$wp_account = get_user_by( \'id\', $id );
$username = $wp_account->data->user_login;
wp_set_current_user( $wp_account->ID );
wp_set_auth_cookie( $wp_account->ID );
do_action(\'wp_login\', $username );
}
。。。然后我得到这个:
Error: call to URL http://domain.com/api/api.php failed with status 500, response , curl_error , curl_errno 0
这与上面的错误基本相同,但没有“作弊”这个词。但我没想到这会起作用,因为一块饼干不会影响卷曲连接。
那么,在处理CURL时,如何避免遇到性能错误呢?我用过wp_insert_post()
以前有很多次,从来没有过这个问题。我的临时黑客解决方案是删除wp_die()
函数,它显然修复了该问题。
WordPress版本为3.9.1