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

# Функция GET_POST_FIELD() │ WP 2.3.0

Функция GET_POST_FIELD() позволяет получить значение любого поля поста на основе переданного ID поста. Это могут быть такие поля, как тип поста, статус поста, содержимое поста и т.д.

Примеры полей поста:
- post_type (тип поста)
- post_status (статус поста)
- post_content (содержимое поста)

Значения контекста основаны на функциях фильтрации таксономий, а поддерживаемые значения можно найти в этих функциях.

Результат будет отфильтрован в зависимости от параметра $context.

## Производительность

- Использует: sanitize_post_field()
- 1 вызов — 0.000635 сек (медленно)
- 50000 вызовов — 2.23 сек (быстро)

## Возвращаемое значение

Функция возвращает строку с значением поля поста в случае успеха, или пустую строку в случае ошибки.

## Использование

```php
get_post_field( $field, $post, $context );

Параметры:

  • $field (строка) (обязательный)
    Имя поля, данные которого вы хотите получить. Это может быть любое имя столбца из таблицы wp_posts.
    Примеры:

    • post_content
    • post_author
    • post_title
    • post_name
  • $post (int/WP_Post)
    ID поста или объект поста, значение поля которого мы собираемся получить.
    По умолчанию: текущий пост.

  • $context (строка)
    Определяет, как фильтровать поле. Принимает следующие значения:

    • raw — без какой-либо очистки.
    • edit — для дальнейшего редактирования.
    • db — для использования в запросе к базе данных.
    • display — для отображения.
    • attribute — для использования в атрибуте.
    • js — для использования в данных скрипта.

    По умолчанию: 'display'.

Примеры использования

Пример 1: Получение заголовка поста

$field = get_post_field( 'post_title', 1, 'db' );
echo $field;
// вывод: Заголовок поста с ID 1

Примечания

  • Посмотрите также: sanitize_post_field()

История изменений

  • С версии 2.3.0 — функция была введена.
  • С версии 4.5.0 — параметр $post стал необязательным.

Код функции GET_POST_FIELD() в WP 6.7.2

function get_post_field( $field, $post = null, $context = 'display' ) {
    $post = get_post( $post );

    if ( ! $post ) {
        return '';
    }

    if ( ! isset( $post->$field ) ) {
        return '';
    }

    return sanitize_post_field( $field, $post->$field, $post->ID, $context );
}

Связанные функции

  • edit_post_link()
  • get_delete_post_link()
  • get_edit_post_link()
  • get_permalink()
  • get_post_status()
  • get_post_time()
  • get_sample_permalink()
  • get_the_content()
  • get_the_date()
  • get_the_excerpt()
  • get_the_ID()
  • get_the_modified_date()
  • get_the_modified_time()
  • get_the_permalink()
  • get_the_time()
  • get_the_title()
  • get_the_title_rss()
  • has_excerpt()
  • post_password_required()
  • register_post_status()
  • single_post_title()
  • the_author()
  • the_content()
  • the_date()
  • the_excerpt()
  • the_excerpt_rss()
  • the_ID()
  • the_modified_date()
  • the_permalink()
  • the_time()
  • the_title()
  • the_title_attribute()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *