Получить ID объекта по URL

17 апр. 2012 г., 16:00:34
Просмотры: 20.2K
Голосов: 3

У меня есть URL (например, URL /sample-page/), мне нужен соответствующий ID объекта. Как это сделать?

0
Все ответы на вопрос 4
1

Попробуйте эту функцию:

url_to_postid( $url );

Кодекс WordPress — ваш друг. Быстрый поиск в Google мог бы дать ответ.

17 апр. 2012 г. 16:31:07
Комментарии

"Быстрый поиск в Google мог бы дать ответ," поэтому все и используют StackExchange? Это заслуживает дизлайка.

Ingo Steinke Ingo Steinke
18 июл. 2023 г. 19:15:36
3

Другие ответы верны, но стоит добавить еще один (обычно неизвестный, но очень полезный) метод, который предоставляется функцией: 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

18 мая 2012 г. 05:38:55
Комментарии

Не работает, $page-ID возвращает ошибку Notice: Trying to get property of non-object in ....

Murhaf Sousli Murhaf Sousli
18 февр. 2015 г. 03:58:49

Вы пробовали $page->ID или $page-ID?

krembo99 krembo99
28 июн. 2015 г. 17:27:12

Полезно знать, хотя это не работает для URL, выводимого функцией polylang pll_home_url()

Ingo Steinke Ingo Steinke
18 июл. 2023 г. 19:18:32
0

Используйте get_queried_object_id() в качестве маппера для WP_Query::get_queried_object_id().

В отличие от url_to_postid(), вам не нужно знать URL, и это работает для таксономий и пользовательских типов записей (если я правильно помню).

Пример использования смотрите в моём ответе на вопрос Получить ID текущего термина.

17 апр. 2012 г. 17:45:05
0

У меня была такая же проблема, но с пользовательскими типами записей. К сожалению, функция 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 ?>
28 мая 2012 г. 16:07:15