get_post() WP 1.5.1

Отримує дані зазначеного або поточного запису (поста). Повертає об’єкт WP_Post .

Вказувати потрібно ID запису, інакше функція поверне поточний запис.

Запис береться за ID, тому тип запису може бути будь-який: вкладення, пост, сторінка, довільний тип. Якщо запис не вказано, функція отримає поточний запис із циклу (відповідний глобальній змінній $post ).

Не плутайте з функцією get_posts() , яка отримує дані кількох записів.

ВАЖЛИВО! get_post() без параметрів повертає глобальний об’єкт $post! Перевірено на WP 6.0.

Наприклад:

global $post;
$post = get_post(1);

echo $post->post_type; // Post

$some_post = get_post();
$some_post->post_type = 'my_post_type';

echo $post->post_type; // my_post_type

Інший приклад. Допустимо у нас вже визначено глобальну змінну $post. Тепер, давайте запустимо такий код:

$mypost = get_post();
$mypost->post_type = 'my_post_type';

global $post;
echo $post->post_type; // my_post_type

До WP 3.5 перший параметр міг отримувати лише змінну, пряма передача числа викликала помилку:

// Правильно: передаємо змінну, а чи не число
$post_id = 7;
$ the_post = get_post ($ post_id);

// Невірно (викликає помилку до версії WP 3.5): передаємо число, а не змінну
$ the_post = get_post(7);

Працює на основі:
WP_Post::get_instance()
1 раз – 0.000879 сек
(повільно) | 50000 разів – 0.25 сек
(дуже швидко) |
PHP 7.2.5, WP 5.0.1

Хуків немає.

Повертає

WP_Post|Массив|null. Об’єкт WP_Post, якщо вдалося отримати запис і null, при невдачі.

Використання

$post = get_post($post, $output, $filter);
$post
(число/WP_Post/null)
ID посту, дані якого потрібно отримати.


Типово: null (global $post)
$output
(рядок)

Прапор позначає в якому вигляді повернути дані, можливо:

  • OBJECT– дані повернуться як об’єкта
  • ARRAY_A– дані повернуться у вигляді асоціативного масиву
  • ARRAY_N– дані повернуться у вигляді простого масиву (без ключів)

Типово: OBJECT

$filter
(рядок)
Як фільтрувати пост. Дивіться опис функції
sanitize_post_field() для повного списку значень. Можливо:
‘raw’ ,
‘edit’ ,
‘db’ , чи
‘display’ .


Типово: raw

Приклади

5

#1 Повертаються дані

ID
(число)
Ідентифікатор запису.
post_author
(число)
Ідентифікатор автора запису.
post_date
(рядок)
Дата запису у форматі YYYY-MM-DD HH:MM:SS (з урахуванням виправлення часу).
post_date_gmt
(рядок)
Дата запису у форматі YYYY-MM-DD HH:MM:SS (час за Грінвічем (GMT)).
post_content
(рядок)
Текст запису.
post_title
(рядок)
Заголовок запису.
post_excerpt
(рядок)
Цитувати запис.
post_status
(рядок)
Статут запису, можливо: publish|pending|draft|private|static|object|attachment|inherit|future|trash.
comment_status
(рядок)
Можливість коментування для запису може бути: open | closed | registered_only.
ping_status
(рядок)
Статус пінгів/трекбеків, можливо: open | closed.
post_password
(рядок)
Пароль запису.
post_name
(рядок)
Ім’я запису (склад). Назва, яка зазвичай використовується в УРЛ-і.
to_ping
(рядок)
УРЛ-и зі статті, на які потрібно надіслати повідомлення під час оновлення посту.
pinged
(рядок)
УРЛ зі статті, які вже отримали повідомлення.
post_modified
(рядок)
Дата зміни запису у форматі YYYY-MM-DD HH:MM:SS (з урахуванням коригування часу).
post_modified_gmt
(число/рядок)
Дата зміни запису у форматі YYYY-MM-DD HH:MM:SS (час за Грінвічем (GMT)).
post_parent
(число)
ID батьківської сторінки (відмінно від нуля у прикріплених типів записів).
guid
(рядок)
Посилання на запис. Важливо: використовувати цей параметр як постійне посилання для посту неправильно, якщо версія WordPress вище 2.5. Це унікальний ідентифікатор запису, який пізніше став посиланням на запис.
menu_order
(число)
Порядковий номер для створення меню (використовується для постійних сторінок).
post_type
(рядок)
Тип запису (post|page|attachment).
post_mime_type
(рядок)
Міме тип запису (jpg|png|zip|pdf і т.д.). Використовується для записів.
comment_count
(число)
Кількість коментарів запису.
0

#2 Отримуємо дані посту з ідентифікатором 7 і отримуємо заголовок запису:

$post_id_7 = get_post(7);
$title = $post_id_7->post_title;

Отримуємо дані посту 7 у вигляді асоціативного масиву і “витягуємо” заголовок з масиву:

$post_id_7 = get_post( 7, ARRAY_A );
$title = $post_id_7['post_title'];

нотатки

  • Global. WP_Post. $post Global post об’єкт.

список змін

З версії 1.5.1Введено.

Код get_post() WP 6.0.2

function get_post( $post = null, $output = OBJECT, $filter = 'raw' ) {
	if ( empty( $post ) && isset( $GLOBALS['post'] ) ) {
		$post = $GLOBALS['post'];
	}

	if ( $post instanceof WP_Post ) {
		$_post = $post;
	} elseif ( is_object( $post ) ) {
		if ( empty( $post->filter ) ) {
			$_post = sanitize_post($post, 'raw');
			$_post = new WP_Post($_post);
		} elseif ( 'raw' === $post->filter ) {
			$_post = new WP_Post($post);
		} else {
			$_post = WP_Post::get_instance( $post->ID );
		}
	} else {
		$_post = WP_Post::get_instance( $post );
	}

	if (! $_post) {
		return null;
	}

	$_post = $_post->filter($filter);

	if ( ARRAY_A === $output ) {
		return $_post->to_array();
	} elseif ( ARRAY_N === $output ) {
		return array_values( $_post->to_array() );
	}

	return $_post;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *