我想在另一个网站上显示WordPress登录的用户ID和电子邮件,因此,我正在使用wordpress json-api
插件来创建api,但无法正常工作。
当我点击直接链接时,它显示的数据为:
"{\"id\":1,\"email\":\"admin@admin.com\"}"
但是当我使用json_decode
并打印数据时,它显示:
string(22) "{"id":0,"email":false}"
api代码
public function get_loggedin_user_details() {
global $user;
global $wpdb, $json_api;
$current_user = wp_get_current_user();
$myObj->id = $current_user->ID;
$myObj->email = $current_user->user_email;
$logedin_userid = json_encode($myObj);
return $logedin_userid;
}
答案 0 :(得分:0)
您没有对请求进行身份验证,因此未记录该请求,导致ID 0,并且没有电子邮件。
WP rest api提供了cookie身份验证方法,但是也有插件,您可以在此处阅读更多有关操作方法的信息:
https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
答案 1 :(得分:0)
以下是在WP上获取登录用户ID的过程:
像这样创建自定义的Rest-API路由:
add_action( 'rest_api_init', function () {
register_rest_route( 'your_custom_route/v2', '/(?P<slug>[a-zA-Z0-9-]+)', array(
'methods' => 'POST',
'callback' => 'rest_api_custom_func',
) );
} );
function rest_api_custom_func(){
global $user;
global $wpdb;
$current_user = wp_get_current_user();
$myObj->id = $current_user->ID;
$myObj->email = $current_user->user_email;
$logedin_userid = json_encode($myObj);
return $logedin_userid; }
在rest-api路由上编写自己的函数作为回调函数 : rest_api_custom_func
您可以使用自定义回调函数执行任何操作
注意:不需要任何其他插件,请使用内置的Wordpress Rest API
答案 2 :(得分:0)
我要指出一些可能被忽略的东西。
您的初始值已转义...“ {\” id \“:1,\” email \“:\” admin@admin.com \“}”“,并在外面加上了引号。这不是正确的json字符串。
应为:{“ id”:1,“电子邮件”:“ admin@admin.com”}