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