亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在自定義路由中使用 register_rest_field

在自定義路由中使用 register_rest_field

PHP
函數式編程 2022-07-09 10:02:25
我目前正在嘗試創建一個用于創建應用程序的 API 為此,我需要一個自定義端點,該端點只能從已登錄的用戶訪問,目前使用以下代碼完成:register_rest_route( 'wp/v2', 'private/me',array(            'methods'  =>  WP_REST_Server::READABLE,            'callback' => 'get_private'));function get_private($request) {      $user = (array) wp_get_current_user();      $user["data"] = (array) $user["data"];      unset($user['data']['user_pass']);      // $user = get_user_by('id', 13);      if (empty($user)) {            return new WP_Error( 'empty_category', 'there is no post in this category', array('status' => 404) );      }      $response = new WP_REST_Response($user['data']);      $response->set_status(200);      return $response;}目前它返回一個沒有'user_pass'的用戶對象然后,當我使用“register_rest_field”函數時,我什么也得不到(如果在任何默認 api 用戶端點上設置,該函數就可以工作register_rest_field('private/me',    'rank_number',    array(      'get_callback'      =>  'get_rank_number',      'update_callback'   =>  null,      'schema'            =>  null    )  );function get_rank_number ( $user ) {  return (int) get_user_meta($user['id'], 'ck_user_ranking_score_number', true);}問題是,我不知道如何讓路線讀取已注冊休息字段的列表,也不知道是否應該這樣做目前,我正在嘗試通過擴展 WP_REST_Controller 類來實現它,因為它看起來可以工作有人可以幫助我了解 API 的工作原理或應該如何使用它嗎?:/
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

如果有人遇到同樣的問題,wordpress 用戶在他們的論壇上回答了我的帖子,


解決方案: var $wp_rest_additional_fields,我在文檔中找不到任何關于它的內容,但至少 var 確實存在于全局范圍內


因此,使用此代碼一切正常


global $wp_rest_additional_fields;


foreach($wp_rest_additional_fields['private/me'] as $key => $value){

      $user_data[$key] = call_user_func($value['get_callback'], $user['data']);

    }


查看完整回答
反對 回復 2022-07-09
  • 1 回答
  • 0 關注
  • 98 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號