¿Cómo recuperar una entrada por nombre de slug a través de la API REST?

22 feb 2017, 15:51:50
Vistas: 51.1K
Votos: 36

Funciona para mis páginas pero no para mis entradas. Si voy a example.com/wp-json/wp/v2/pages?slug=page-name recuperará la página correctamente. Si voy a example.com/wp-json/wp/v2/posts?slug=post-name no recuperará una entrada de la misma manera. ¿Alguien puede decirme cómo obtener una entrada por el nombre del slug? La entrada también tiene una categoría, pero no sé si es necesaria o cómo añadirla correctamente a la consulta. Toda la documentación que he encontrado hace referencia a la función [filter] que ya no está soportada.

3
Comentarios

He probado http://sitename.com/wp-json/wp/v2/posts?slug=post-slug y funciona

Tamil Selvan C Tamil Selvan C
22 feb 2017 16:02:12

Prueba con el slug del post en lugar del nombre del post

Tamil Selvan C Tamil Selvan C
22 feb 2017 16:02:48

He descubierto que podría haber un problema con mi plugin Paid Memberships Pro. Cualquier publicación que se considere contenido restringido no puede ser llamada por su slug y no devuelve nada en lugar de "La página está restringida, por favor inicia sesión."

Alex Alex
22 feb 2017 23:02:00
Todas las respuestas a la pregunta 2
1
69

Publicaciones: sitename.com/wp-json/wp/v2/posts?slug=post-slug

Páginas: sitename.com/wp-json/wp/v2/pages?slug=page-slug

Tipo de publicación personalizado: sitename.com/wp-json/wp/v2/POST_TYPE?slug=post-slug

29 oct 2017 11:29:30
Comentarios

¡¡¡gracias!!!....

Daniel M Sánchez Daniel M Sánchez
22 ago 2019 19:36:36
0

En lugar de codificar manualmente la raíz de la API, es más seguro obtenerla de esta manera:

$api_root = trailingslashit( get_home_url() ) . rest_get_url_prefix();

y luego

Entradas: $api_root . '/wp/v2/posts?slug={slug}';

Páginas: $api_root . '/wp/v2/pages?slug={slug}';

Tipo de entrada personalizada: $api_root . '/wp/v2/{post_type}?slug={slug}';

Referencia

https://developer.wordpress.org/reference/functions/rest_get_url_prefix/

15 oct 2023 07:15:24