WordPress API очень разрослось, и почти на каждый случай есть своя функция. И в этой куче функций найти то, что нужно, бывает не просто.
Задача — получить ID публикации по её адресу, а вернее значению slug или post_name.
В кодексе есть подходящая функция, которая вернет нам целиком объект публикации:
1 |
$page = get_page_by_path( $page_path, $output, $post_type ); |
Обязательным является только первый параметр.
$output — задаёт то, в каком виде будет выдан объект публикации. Возможны три варианта OBJECT, ARRAY_N, or >ARRAY_A, по умолчанию — OBJECT.
Последний аргумент позволяет сократить область поиска указанием типа публикации.
1 2 |
// вернет публикацию типа animal c uri 'cat'. $pub = get_page_by_path('cat', OBJECT, 'animal'); |
Осталось только получит ID объекта, если функция вернула что то кроме null.
1 |
$ID = $pub->ID; |