get_post_field()
Получает значение любого поля данных поста по переданному ID поста: post_type, post_status, post_content ...
Результат будет отфильтрован по параметру $context.
Работает на основе: sanitize_post_field()
1 раз — 0.000635 сек (медленно) | 50000 раз — 2.23 сек (быстро)
Хуков нет.
Возвращает
int|Строку|int[]. Объект WP_Error или строку. Значение поля.
Использование
get_post_field( $field, $post, $context );
- $field(строка) (обязательный)
- Название поля, данные которого нужно получить. Может быть названием любой колонки таблицы wp_posts.
- $post(число)
- ID поста, данные поля которого мы собрались получать. C версии 4.5. параметр стал не обязательный.
По умолчанию: null - $context(строка)
Указание, как фильтровать получаемое поле. В зависимости от того, как дальше мы будем использовать данные. Может быть:
raw- без какой-либо очистки.edit- для дальнейшего редактирования.db- для использования в запросе.display- для вывода на экран.attribute- для использования в атрибуте.js- для использования в данных скрипта.
По умолчанию: 'display'
Примеры
#1 Получим поле post_title у поста с ID = 1 и отфильтруем его для использования в запросе к БД:
$field = get_post_field( 'post_title', 1, 'db' ); echo $field; // получим: Заголовок поста 1
Заметки
- Смотрите: sanitize_post_field()
Список изменений
| С версии 2.3.0 | Введена. |
| С версии 4.5.0 | The $post parameter was made optional. |
Код get_post_field() get post field WP 6.9.4
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 );
}