Obține ID-ul obiectului după URL

17 apr. 2012, 16:00:34
Vizualizări: 20.2K
Voturi: 3

Am un URL (cum ar fi URL-ul /sample-page/), am nevoie de ID-ul obiectului corespunzător. Cum?

0
Toate răspunsurile la întrebare 4
1

Încearcă această funcție:

url_to_postid( $url );

Codex-ul WordPress este prietenul tău. O căutare rapidă pe Google ar fi putut oferi răspunsul.

17 apr. 2012 16:31:07
Comentarii

"Un simplu căutare pe Google ar fi putut furniza răspunsul," motiv pentru care toată lumea folosește StackExchange? Această remarcă merită un vot negativ.

Ingo Steinke Ingo Steinke
18 iul. 2023 19:15:36
3

Celelalte răspunsuri sunt valide, dar doar pentru a adăuga o altă metodă (de obicei necunoscută, dar foarte utilă) care este furnizată de o funcție numită: get_page_by_path();

$page = get_page_by_path('parent-page/sub-page');

Este important de menționat că parametrul path poate lua chiar și un SLUG ca parametru. Exemplu:

$page = get_page_by_path('your-slug-of-page-to-exclude');
wp_list_pages('exclude='.$page->ID.'&title_li=');

apoi puteți folosi $page->ID

18 mai 2012 05:38:55
Comentarii

Nu funcționează, $page-ID returnează eroarea Notice: Trying to get property of non-object in ....

Murhaf Sousli Murhaf Sousli
18 feb. 2015 03:58:49

ai încercat $page->ID sau $page-ID ?

krembo99 krembo99
28 iun. 2015 17:27:12

Bine de știut, deși nu funcționează pentru un URL returnat de funcția pll_home_url() din polylang

Ingo Steinke Ingo Steinke
18 iul. 2023 19:18:32
0

Utilizează get_queried_object_id() ca un mapper pentru WP_Query::get_queried_object_id().

Spre deosebire de url_to_postid(), nu trebuie să cunoști URL-ul și funcționează și pentru taxonomii și tipuri personalizate de postări (dacă îmi amintesc corect).

Pentru un exemplu de utilizare, vezi răspunsul meu la Obține ID-ul termenului curent.

17 apr. 2012 17:45:05
0

Am avut aceeași problemă, dar doar cu tipuri de postări personalizate. Din păcate, url_to_postid( $url ); nu funcționează cu tipurile personalizate, așa că am folosit această funcție bwp_url_to_postid($url). Această funcție extinde url_to_postid( $url ); pentru a funcționa și cu tipurile de postări personalizate.

Dacă aveți permalink-ul URL-ului, atunci:

<?php $postLink = get_permalink($post_object->ID); ?>
<?php $postId = bwp_url_to_postid($link); ?>
<?php echo $postId ?>
28 mai 2012 16:07:15