wp_get_post_revision() WP 2.6.0

Отримує ревізію поста за вказаною ID ревізії. Якщо записи із зазначеним ID немає або це не ревізія поверне null.

Ревізіями вважаються записи, які мають поле post_type = revision.

Працює на основі:
get_post()
1 раз – 0.000602 сек
(повільно) | 50000 разів – 1.12 сек
(швидко)

Хуків немає.

Повертає

WP_Post|Массив|null.

  • WP_Postпри успіху, якщо $output = OBJECT .
  • массивпри успіху, якщо $output = ARRAY_A чи ARRAY_N .
  • nullпри помилці (зазначений пост не ревізія або пост не знайдено).

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

wp_get_post_revision($post, $output, $filter);
$post
(число/WP_Post) (обов’язковий) (передається за посиланням – &)
ID або об’єкт ревізії запису.
$output
(рядок)
Як повертати дані. Можливо: OBJECT, ARRAY_A (асоціативний масив) або ARRAY_N (пронумерований масив).


Типово: OBJECT
$filter
(рядок)
Як очищати поля, що повертаються. Дивіться:
sanitize_post_field() .


За замовчуванням: ‘raw’

Приклади

0

#1 Отримаємо об’єкт запису (WP_Post), який має бути ревізією запису

$ revision_id = 15;
$ revision = wp_get_post_revision ($ revision_id);

if($revision) {
	// так це ревізія
	print_r ($ revision);
}

/* Виведе
WP_Post Object
(
	[ID] => 1008
	[post_author] => 1
	[post_date] => 2015-08-26 19:15:42
	[post_date_gmt] => 2015-08-26 15:15:42
	[post_content] => Контент
	[post_title] => Основні способи освіти
	[post_excerpt] =>
	[post_status] => inherit
	[comment_status] => closed
	[ping_status] => closed
	[post_password] =>
	[post_name] => 997-revision-v1
	[to_ping] =>
	[pinged] =>
	[post_modified] => 2015-08-26 19:15:42
	[post_modified_gmt] => 2015-08-26 15:15:42
	[post_content_filtered] =>
	[post_parent] => 997
	[guid] => http://example.com/997-revision-v1/
	[menu_order] => 0
	[post_type] => revision
	[post_mime_type] =>
	[comment_count] => 0
	[filter] => raw
)
*/
0

#2 Перевірка чи пост ревізією

Код функції wp_is_post_revision() , в якому видно, як працює ця функція:

function wp_is_post_revision( $post ) {
	if ( ! $post = wp_get_post_revision( $post ) ) {
		return false;
	}

	return (int) $post->post_parent;
}

список змін

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

Код wp_get_post_revision() WP 6.0.2

function wp_get_post_revision( &$post, $output = OBJECT, $filter = 'raw' ) {
	$ revision = get_post ($ post, OBJECT, $ filter);
	if ( ! $revision ) {
		return $revision;
	}
	if ( 'revision' !== $revision->post_type ) {
		return null;
	}

	if ( OBJECT === $output ) {
		return $revision;
	} elseif ( ARRAY_A === $output ) {
		$_revision = get_object_vars($revision);
		return $_revision;
	} elseif ( ARRAY_N === $output ) {
		$_revision = array_values( get_object_vars( $revision ) );
		return $_revision;
	}

	return $revision;
}

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

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