Функция 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()
, которые сразу выводят данные на экран.