Функция get_post_field() достаёт значение любого поля записи по её ID. Это может быть post_type, post_status, post_content и вообще любой столбец из таблицы wp_posts. Перед выдачей значение прогоняется через sanitize_post_field() с учётом выбранного контекста, так что данные приходят уже отфильтрованными под конкретную задачу.

Что возвращает

В зависимости от запрошенного поля это может быть число, строка, массив, объект или значение поля. Если запись не найдена либо поля не существует, функция вернёт пустую строку.

Параметры

$field (строка, обязательный) — имя поля, которое нужно получить. Совпадает с названием столбца в таблице wp_posts.

$post (число, необязательный) — ID записи. Стал необязательным начиная с версии 4.5. По умолчанию null.

$context (строка, необязательный) — способ фильтрации значения. Доступные варианты: raw, edit, db, display, attribute и js. По умолчанию display.

Как функция устроена внутри

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 );
}

Логика простая: сначала функция получает объект записи через get_post(), затем проверяет, что запись и нужное поле существуют, и только потом возвращает очищенное значение.

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

Получаем заголовок записи с ID 1, отфильтрованный для использования в базе данных:

get_post_field( 'post_title', 1, 'db' );

Коротко

get_post_field() — это универсальный способ вытащить любые данные записи, не работая напрямую с глобальным объектом $post. Главное — правильно подобрать контекст фильтрации под то, куда пойдёт значение.

Добавить комментарий

Разработка сайтов на Wordpress