Получить ID объекта по URL
Попробуйте эту функцию:
url_to_postid( $url );
Кодекс WordPress — ваш друг. Быстрый поиск в Google мог бы дать ответ.
Другие ответы верны, но стоит добавить еще один (обычно неизвестный, но очень полезный) метод, который предоставляется функцией: get_page_by_path();
$page = get_page_by_path('родительская-страница/дочерняя-страница');
Важно отметить, что параметр path может принимать даже СЛАГ в качестве параметра. Пример:
$page = get_page_by_path('ваш-слаг-страницы-для-исключения');
wp_list_pages('exclude='.$page->ID.'&title_li=');
Затем вы можете использовать $page->ID
Не работает, $page-ID возвращает ошибку Notice: Trying to get property of non-object in ....
Murhaf Sousli
Используйте get_queried_object_id() в качестве маппера для WP_Query::get_queried_object_id().
В отличие от url_to_postid(), вам не нужно знать URL, и это работает для таксономий и пользовательских типов записей (если я правильно помню).
Пример использования смотрите в моём ответе на вопрос Получить ID текущего термина.
У меня была такая же проблема, но с пользовательскими типами записей. К сожалению, функция url_to_postid( $url ); не работает с пользовательскими типами, поэтому я использовал функцию bwp_url_to_postid($url).
Эта функция расширяет url_to_postid( $url ); для работы с пользовательскими типами записей.
Если у вас есть постоянная ссылка URL, тогда:
<?php $postLink = get_permalink($post_object->ID); ?>
<?php $postId = bwp_url_to_postid($link); ?>
<?php echo $postId ?>