Как получить ID родительского поста?
У меня есть шаблон, который выводит записи блога (Страница блога). Когда я открываю одну из записей, которая использует шаблон single.php, как я могу получить ID её родителя (Страницы блога)?
Должен уточнить, что мне нужен этот ID, чтобы получить значение мета-поля страницы блога в single.php.
То же самое касается пользовательского типа записи, например 'project', где шаблон страницы выводит список проектов (Страница проектов), а single-project.php - для отдельного проекта. В этом случае мне нужно получить ID (Страницы проектов) в single-project.php.
WordPress 5.7 представляет новую вспомогательную функцию для более удобного получения ID родительской записи:
get_post_parent()
Её также можно использовать вместе с функцией has_post_parent()
, что позволяет создать конструкцию вида:
<?php if ( has_post_parent() ) : ?>
<a href="<?php the_permalink( get_post_parent() ); ?>">
<?php
echo sprintf(
esc_html__( 'Вернуться к родительской странице: %s', 'text-domain' ),
get_the_title( get_post_parent() )
);
?>
</a>
<?php endif; ?>
Обратите внимание, что эти функции принимают параметр "ID дочерней записи", который по умолчанию равен текущей записи.

Мне удалось получить ID страницы блога с помощью get_option('page_for_posts'), но не получилось для пользовательского типа записи, так как $post->post_parent возвращает 0.

У меня $post->post_parent работает. Выведите ваш объект $post, и вы увидите, что [post_parent] там присутствует.
