Cum poți prelua o postare după numele slug prin REST API?

22 feb. 2017, 15:51:50
Vizualizări: 51.1K
Voturi: 36

Funcționează pentru paginile mele dar nu și pentru postări. Dacă accesez example.com/wp-json/wp/v2/pages?slug=page-name va prelua pagina corect. Dacă accesez example.com/wp-json/wp/v2/posts?slug=post-name nu va prelua postarea în același mod. Poate cineva să îmi spună cum să obțin o postare după numele slug? Postarea are și o categorie, dar nu știu dacă este necesară sau cum să adaug asta corect în query. Toată documentația pe care am găsit-o face referire la funcția [filter] care nu mai este suportată.

3
Comentarii

Am încercat http://sitename.com/wp-json/wp/v2/posts?slug=post-slug și funcționează

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

Încearcă să folosești slug-ul postării în loc de numele postării

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

Am descoperit că ar putea fi o problemă cu pluginul Paid Memberships Pro. Orice postare care este considerată conținut restricționat nu poate fi accesată prin slug-ul său și nu returnează nimic în loc de mesajul "Pagina este restricționată, vă rugăm să vă autentificați."

Alex Alex
22 feb. 2017 23:02:00
Toate răspunsurile la întrebare 2
1
69

Postări: sitename.com/wp-json/wp/v2/posts?slug=post-slug

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

Tip personalizat de postare: sitename.com/wp-json/wp/v2/POST_TYPE?slug=post-slug

29 oct. 2017 11:29:30
Comentarii

mulțumesc!!!....

Daniel M Sánchez Daniel M Sánchez
22 aug. 2019 19:36:36
0

În loc să hardcodezi rădăcina API-ului, este mai sigur să o obții astfel:

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

și apoi

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

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

Tip personalizat de postare: $api_root . '/wp/v2/{post_type}?slug={slug}';

Referință

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

15 oct. 2023 07:15:24