Ottenere l'ID dell'oggetto tramite URL

17 apr 2012, 16:00:34
Visualizzazioni: 20.2K
Voti: 3

Ho un URL (come l'URL /sample-page/), ho bisogno dell'ID dell'oggetto corrispondente. Come fare?

0
Tutte le risposte alla domanda 4
1

Prova questa funzione:

url_to_postid( $url );

Il codex di WordPress è tuo amico. Una rapida ricerca su Google avrebbe potuto darti la risposta.

17 apr 2012 16:31:07
Commenti

"Una rapida ricerca su Google avrebbe potuto fornire la risposta," ed è per questo che tutti usano StackExchange? Questo commento merita un voto negativo.

Ingo Steinke Ingo Steinke
18 lug 2023 19:15:36
3

Le altre risposte sono valide, ma solo per aggiungere un altro metodo (solitamente sconosciuto, ma molto utile) fornito da una funzione chiamata: get_page_by_path();

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

Vale la pena notare che il parametro path può anche accettare uno SLUG come parametro. Esempio:

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

poi potresti usare $page->ID

18 mag 2012 05:38:55
Commenti

Non funziona, $page-ID restituisce l'errore Notice: Trying to get property of non-object in ....

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

hai provato $page->ID o $page-ID ?

krembo99 krembo99
28 giu 2015 17:27:12

Buono a sapersi, anche se non funziona per un URL generato da pll_home_url() di polylang

Ingo Steinke Ingo Steinke
18 lug 2023 19:18:32
0

Utilizza get_queried_object_id() come mappatore per WP_Query::get_queried_object_id().

A differenza di url_to_postid(), non è necessario conoscere l'URL e funziona anche con tassonomie e tipi di post personalizzati (se ricordo bene).

Per un esempio d'uso, consulta la mia risposta a Ottenere l'ID del termine corrente.

17 apr 2012 17:45:05
0

Avevo lo stesso problema, ma solo con i tipi di post personalizzati. Sfortunatamente url_to_postid( $url ); non funziona con i tipi personalizzati, quindi ho finito per usare questa funzione bwp_url_to_postid($url). Questa funzione estende url_to_postid( $url ); per farlo funzionare con i tipi di post personalizzati.

Se hai il permalink dell'URL, allora:

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