错误的字符集get_error_message()wordpress

时间:2018-06-01 09:42:22

标签: php wordpress

我的API中有PHP方法来处理POST请求:

...

$user_id = wp_create_user( $user_login, $user_pass, $user_login );

if ( is_wp_error( $user_id ) ) {
    $base_response['message'] = $user_id->get_error_message();
    $base_response['status'] = false;
    return json_encode ($base_response);
}

...

如果用户已经存在时,收到错误消息,但为什么此消息($ base_response ['消息'])具有Unicode格式:" u041du0430 u0436u0430u043bu044c,u0446u0435 u0456u043c' u044f u043au043eu0440u0438u0441u0442u0443u0432u0430u0447u0430 u0432u0436u0435 u0456u0441u043du0443u0454!&#34 ;.如何改变这个?

2 个答案:

答案 0 :(得分:1)

wp_create_user功能中的参数错误。您需要在最后一个参数中传递电子邮件而不是user_login

$user_id = wp_create_user( $user_login, $user_pass, $user_email );

if ( is_wp_error( $user_id ) ) {
    $base_response['message'] = $user_id->get_error_message();
    $base_response['status'] = false;
    return json_encode ($base_response);
}

请参阅文档以获取正确的参数: https://developer.wordpress.org/reference/functions/wp_create_user/

答案 1 :(得分:0)

问题出现在wordpress网站的西里尔语中,而json_encode无法正确转换西里尔语消息。当我将wordpress admin中的语言改为英语时,现在一切都很好。