# Функция get_post() в WordPress
Функция get_post()
используется для получения данных текущего или указанного поста в WordPress. Чтобы использовать её, вам нужно указать ID поста, в противном случае функция вернёт текущий пост. Она возвращает объект типа WP_Post
.
## Что такое пост?
Постом может быть любой тип записи: вложение, обычный пост, страница или любой пользовательский тип записи. Если пост не указан, функция будет работать с глобальной переменной $post
, которая представляет текущий пост.
### Важно!
Функция get_post()
без параметров возвращает глобальный объект $post
. Это было протестировано в WordPress версии 6.0.
## Примеры использования функции get_post()
### Пример 1: Получение данных поста
```php
global $post;
$post = get_post(1);
echo $post->post_type; // Выводит: post
В этом примере мы запрашиваем пост с ID 1 и выводим его тип.
Пример 2: Использование текущего поста
$some_post = get_post();
$some_post->post_type = 'my_post_type';
echo $post->post_type; // Выводит: my_post_type
Здесь мы получаем текущий пост и задаём ему новый тип.
Пример 3: Работа с глобальной переменной
Если мы уже имеем глобальную переменную $post
, вот как это будет выглядеть:
$mypost = get_post();
$mypost->post_type = 'my_post_type';
global $post;
echo $post->post_type; // Выводит: my_post_type
Важно знать
До версии 3.5 первый параметр функции мог принимать только переменную. Если вы передавали число непосредственно, возникала ошибка:
// Корректно: передаётся переменная
$post_id = 7;
$the_post = get_post($post_id);
// Ошибка: передано число
$the_post = get_post(7);
С версии 3.5 можно передавать число напрямую.
Не путайте с get_posts()
Функция get_posts()
используется для получения данных нескольких постов, в то время как get_post()
работает только с одним постом.
Получение поста по слагу
Чтобы получить пост по его слагу, используйте функцию get_page_by_path()
.
Формат возврата
- WP_Post: когда пост успешно получен и
$output = OBJECT
. - array: когда пост успешно получен и
$output
равноARRAY_A
илиARRAY_N
. - null: в случае ошибки.
Синтаксис использования
$post = get_post($post, $output, $filter);
- $post (int/WP_Post/null): ID поста или объект поста, данные которого вам нужны.
null
— данные текущего поста.- По умолчанию: глобальный объе��т
$post
.
- По умолчанию: глобальный объе��т
- $output (string): Тип возвращаемых данных. Может быть:
- OBJECT: объект типа WP_Post
- ARRAY_A: ассоциативный массив
- ARRAY_N: числовой массив.
- По умолчанию: OBJECT.
- $filter (string): Как фильтровать возвращаемые данные поста. Описания возможных значений смотрите в функции
sanitize_post_field()
. Принимает значения 'raw', 'edit', 'db' или 'display'.- По умолчанию: 'raw'.
Примеры
Пример 1: Получение форматированного контента поста
Если вам нужны специальные элементы в контенте (например, шорткоды или теги абзаца), используйте фильтры, а не функцию do_shortcode()
:
$post = get_post(42);
$content = apply_filters('the_content', $post->post_content);
Пример 2: Получение данных одного поста
Получите данные поста с ID 7 и извлеките заголовок:
$post = get_post(7);
$title = $post->post_title;
Вы также можете получить данные поста в виде ассоциативного массива и получить заголовок:
$post = get_post(7, ARRAY_A);
$title = $post['post_title'];
Пример 3: Структура WP_Post объекта
Вот как может выглядеть объект WP_Post
:
$post = get_post(2);
print_r($post);
WP_Post Object(
[ID] => 2
[post_author] => 1
[post_date] => 2018-03-21 17:25:55
[post_content] => Текст поста...
[post_title] => Контакты
[post_status] => publish
[comment_status] => closed
[post_type] => page
[guid] => https://site.com/contacts
)
Заключение
Функция get_post()
является важным инструментом для получения данных о постах в WordPress. Она позволяет работать с различными типами постов и получать нужную информацию.
Используемая версия
Статья основана на версии WordPress 6.7.2.