Come recuperare un post tramite lo slug attraverso l'API REST?

22 feb 2017, 15:51:50
Visualizzazioni: 51.1K
Voti: 36

Funziona per le mie pagine ma non per i miei post. Se vado su example.com/wp-json/wp/v2/pages?slug=page-name recupera la pagina correttamente. Se vado su example.com/wp-json/wp/v2/posts?slug=post-name non recupera il post allo stesso modo. Qualcuno può dirmi come ottenere un post tramite il nome dello slug? Il post ha anche una categoria, ma non so se sia necessaria o come aggiungerla correttamente alla query. Tutta la documentazione che ho trovato fa riferimento alla funzione [filter] che non è più supportata.

3
Commenti

Ho passato http://sitename.com/wp-json/wp/v2/posts?slug=post-slug, funziona

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

Prova lo slug del post invece del nome del post

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

Ho scoperto che potrebbe esserci un problema con il mio plugin Paid Memberships Pro. Qualsiasi post considerato contenuto ristretto non può essere chiamato tramite il suo slug e non restituisce nulla invece di "Pagina riservata, effettua il login".

Alex Alex
22 feb 2017 23:02:00
Tutte le risposte alla domanda 2
1
69

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

Pagine: sitename.com/wp-json/wp/v2/pages?slug=page-slug

Tipi di post personalizzati: sitename.com/wp-json/wp/v2/POST_TYPE?slug=post-slug

29 ott 2017 11:29:30
Commenti

grazieeee!!!....

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

Invece di hardcodare la root dell'API, è più sicuro ottenerla in questo modo:

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

e poi

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

Pagine: $api_root . '/wp/v2/pages?slug={slug}';

Custom post type: $api_root . '/wp/v2/{post_type}?slug={slug}';

Riferimento

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

15 ott 2023 07:15:24