Функция get_post_field(): Получение значения поля поста в WordPress

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

Почитаем еще?: