Ottenere l'ID dell'oggetto tramite URL
Prova questa funzione:
url_to_postid( $url );
Il codex di WordPress è tuo amico. Una rapida ricerca su Google avrebbe potuto darti la risposta.

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

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

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.

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 ?>
