WP Rest API vs – ¿cómo puedo obtener información del autor de v2 – la ID del autor?

2 minutos de lectura

Estoy construyendo una interfaz usando WP JSON y necesito (entre otras cosas) el nombre del autor de cada publicación.

En V1, esto fue fácil: aquí hay un fragmento de un objeto de publicación típico de llamar http://ejemplo.com/wp-json/posts/1:

 {
    "ID": 1,
    "title": "Hello world!",
    "status": "publish",
    "type": "post",
    "author": {
        "ID": 1,
        "name": "admin",
        "slug": "admin",
        "URL": "",
        "avatar": "http:\/\/0.gravatar.com\/avatar\/c57c8945079831fa3c19caef02e44614&d=404&r=G",
        "meta": {
            "links": {
                "self": "http:\/\/example.com\/wp-json\/users\/1",
                "archives": "http:\/\/example.com\/wp-json\/users\/1\/posts"
            }
        }
    },

Pero en V2, para el autor, todo lo que obtenemos es el ID (un número entero). Al pasar esto a la API, obtenemos una lista de todos los artículos que ha escrito un autor, pero ¿cómo puedo obtener la información del autor: su nombre, avatar, etc.?

PD: vaya, la documentación de V2 es escasa… V1 era mucho mejor…

Agregue el parámetro de consulta _embed en la URL de su API

La incrustación se activa configurando el parámetro de consulta _embed en la solicitud. Esto incluirá recursos incrustados bajo la clave _embedded adyacente a la clave _links en el archivo JSON… como se muestra en http://v2.wp-api.org/reference/links.html

Ejemplos:

http://demo.wp-api.org/wp-json/wp/v2/posts?_embed

http://demo.wp-api.org/wp-json/wp/v2/posts?filter%5Bposts_per_page%5D=10&page=1&_embed

Obtener el nombre del autor de JSON y mostrar:

{{postItem._embedded.author[0].name}}

Obtener imagen destacada:

{{postItem._embedded['wp:featuredmedia'][0].source_url}}

Categorías:

{{postItem._embedded['wp:term'][0][0].slug}}
{{postItem._embedded['wp:term'][0][1].slug}}
{{postItem._embedded['wp:term'][0][2].slug}}
{{postItem._embedded['wp:term'][0][3].slug}}
...

y etiquetas:

{{postItem._embedded['wp:term'][1][1].slug}}
{{postItem._embedded['wp:term'][1][2].slug}}
...

  • ¿Existe documentación sobre la estructura de wp:term? Voluntad categories estar siempre en 0y tags en 1? ¿Solo contendrá esas dos entidades? Su documentación es ciertamente escasa.

    – onoya

    11 de diciembre de 2018 a las 9:16


  • ¡¡Muchas gracias!! ¡Esto fue muy útil! funciona como encanto

    – Trecto

    26 de julio de 2020 a las 21:45

Creo que lo que quieres es /wp-json/wp/v2/users/1

También debe encontrar la URL directa en _links > author > href

ingrese la descripción de la imagen aquí

  • Impresionante. Si aceptas la respuesta te lo agradecería.

    –Tom Woodward

    22 de marzo de 2016 a las 12:13

  • Pero con este método, debe consultar dos veces (2 llamadas). Una para datos de publicación y otra para datos de autor.

    – Sibasish

    27 de julio de 2017 a las 4:53

  • Usted tendría que. Use la opción _embed como se sugirió anteriormente y abrirá un mundo completamente nuevo de mejores opciones.

    –Tom Woodward

    28 de julio de 2017 a las 1:14

¿Ha sido útil esta solución?