Функция get_post_field() позволяет получить значение конкретного поля из записи (пост, страница или кастомный тип записи) в WordPress. Это полезный инструмент, когда нужно извлечь определённое поле записи, такое как заголовок, контент или статус.
get_post_field( string $field, int|WP_Post|null $post = null, string $context = ‘display’ );
Аргументы
$field (строка, обязательный): Имя поля, которое вы хотите получить. Примеры:
'post_title'— Заголовок записи.'post_content'— Основное содержимое записи.'post_excerpt'— Краткое описание записи.'post_status'— Статус записи (например,publish,draft).'post_date'— Дата публикации.
$post (int | WP_Post | null, необязательный): ID поста или объект WP_Post. Если не указано, используется текущий пост.
$context (строка, необязательный): Контекст, в котором возвращается значение. Возможные значения:
'raw'— Возвращает исходное значение из базы данных без фильтрации.'edit'— Возвращает значение, которое можно использовать для редактирования.'display'— Значение для отображения (по умолчанию).
Возвращаемое значение
Возвращает строку с содержимым запрашиваемого поля. Если пост не существует или поле не найдено, возвращает false.
Пример использования
Получение заголовка поста
Если нужно получить заголовок записи с определённым ID, можно сделать это так:
<?php
$post_title = get_post_field( 'post_title', 123 );
echo $post_title;Этот код вернёт заголовок поста с ID 123.
Получение основного содержимого поста
Чтобы получить основной контент поста:
<?php
$post_content = get_post_field( 'post_content', 123 );
echo $post_content;Использование текущего поста
Если функция вызывается внутри цикла WordPress (loop), можно не передавать ID поста, так как будет использоваться текущий пост:
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$post_content = get_post_field( 'post_content' );
echo $post_content;
}
}Получение «сырых» данных
Если нужно получить необработанное (сырое) значение из базы данных, можно использовать аргумент 'raw':
<?php
$post_title_raw = get_post_field( 'post_title', 123, 'raw' );
echo $post_title_raw;Часто используемые поля
Некоторые популярные поля, которые часто используются с функцией get_post_field():
'post_title'— Заголовок поста.'post_content'— Содержимое поста.'post_excerpt'— Краткое описание.'post_status'— Статус (например,publish,draft).'post_date'— Дата публикации.'post_author'— ID автора.'post_name'— Слаг поста (часть URL).
Когда использовать
Функция get_post_field() полезна, когда нужно получить конкретное поле из поста, и особенно, если нужно получить необработанные данные. Она обеспечивает больший контроль над извлекаемыми данными, чем функции вроде get_the_title() или the_content(), которые сразу выводят данные на экран.