Pregunta sobre Developing with WordPress de Wordpress:

Uso de register_rest_field en la API de ruta personalizada

Un usuario pregunt贸 馃憞

Hola a todos, actualmente estoy intentando crear una API que se usar谩 para crear una aplicaci贸n.Para hacer esto, necesito un punto final personalizado al que solo debe acceder un usuario que haya iniciado sesi贸n, que actualmente se realiza con este c贸digo:


    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;
    }

Actualmente devuelve el objeto de usuario sin ‘user_pass’

Luego, cuando uso la funci贸n ‘register_rest_field’, no obtengo nada (la funci贸n funciona si estoy configurado en cualquier punto final de usuario de API predeterminado


    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);
    }

El caso es que no s茅 c贸mo hacer el camino para leer la lista de 谩reas de relajaci贸n registradas o si se supone que sea as铆.

Actualmente estoy tratando de hacerlo extendiendo la clase WP_REST_Controller ya que parece estar funcionando

驴Alguien puede ayudarme a comprender c贸mo funciona la API o c贸mo se supone que debe usarse? : /

(@bcworkz)

hace 1 a帽o

Como cualquier API RESTful, la API de WP permite a los desarrolladores de aplicaciones interactuar con los datos del sitio de una manera estructurada y estandarizada sin poner en el camino datos de usuario espec铆ficos como HTML y CSS.

El registro de campo REST se utiliza para administrar los metadatos revelados a trav茅s de la API mientras se recuperan datos de objetos a trav茅s de los puntos finales predeterminados. Ciertos metadatos no deben divulgarse por motivos de privacidad o seguridad. La creaci贸n de su propia ruta / punto final le libera de hacer todo lo que desea. Al igual que puede revelar u ocultar todo lo que necesita a trav茅s de register_rest_field (), su punto final puede revelar u ocultar todo lo que desee, por lo que no es necesario que utilice campos registrados a menos que lo desee. Si desea hacer lo mismo, los campos REST adicionales se almacenan en todo el mundo. $wp_rest_additional_fields.

(@ sebe6)

hace 1 a帽o

隆Gracias! Ya no estoy atascado 馃榾 Me pregunto por qu茅 no hay comentarios sobre esta var en el documento de wordpress rest api a pesar de que es tan 煤til

(@bcworkz)

hace 1 a帽o

炉 _ (銉) _ / 炉 WP utiliza extensivamente estas estructuras globales. No creo que ninguno de ellos est茅 documentado formalmente, pero son f谩cilmente identificables desde el c贸digo fuente para funciones relacionadas como el programa _ * (). Realmente no queremos usarlos directamente, pero IMO es solo un peque帽o truco.

(@ sebe6)

hace 1 a帽o

Ahora que he terminado con mis destinatarios, quiero hacer mis reparadores, pero la solicitud tiene todas las claves de la primera capa configuradas como ‘protegidas’ $

object(WP_REST_Request) #19143 (8) {
  ["method":protected]= >
  string(4)
"POST" ["params": protected] =>
array(6) {
    ["URL"] =>
    array(0) {}
      ["GET"] =>
      array(0) {}
      ["POST"] =>
      array(2) {
        ["title"] =>
        string(4)
        "test" ["content"] =>
        string(1)
        "a"
      }
      ["FILES"] =>
      array(0) {}
      ["JSON"] =>
      NULL["defaults"] =>
      array(0) {}
  }
  ["headers": protected] =>
  array(13)

Podr铆a encontrar trabajo (cableado + cortando lo que necesita) pero eso no ser铆a resistente (prefiero aprenderlo de la manera correcta primero)

Editar: De acuerdo, no sab铆a que usar var global no era la forma predeterminada de sortear wordpress. Pens茅 en usar la b煤squeda en cada archivo la pr贸xima vez 馃槈

PD: Les deseo a todos los que leen esto un Feliz A帽o Nuevo 馃檪

Esta respuesta fue modificada hace 1 a帽o por.

驴Solucion贸 tu problema??

0 / 0

Deja una respuesta 0

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *