WP_GET_POST_REVISION() │ WP 2.6.0
Функция WP_GET_POST_REVISION позволяет получить ревизию поста по её ID. Если такая ревизия отсутствует, функция возвращает null.
Ревизии — это посты с типом post_type = revision.
Использование
- Использует:
get_post() - Вызывается:
wp_is_post_autosave(),wp_is_post_revision() - Время выполнения: 1 раз — 0.000602 сек (медленно), 50000 раз — 1.12 сек (быстро)
Возврат
Функция может возвращать:
WP_Post | Array | null:WP_Postна успех, если$output = OBJECT.Arrayна успех, если$output = ARRAY_AилиARRAY_N.nullпри ошибке (если ревизия не существует).
Параметры
wp_get_post_revision( $post, $output, $filter );
-
$post(int | WP_Post) (обязательный) – ID поста или объект поста. -
$output(string) – Как вернуть данные:OBJECT— возвращает объектWP_Post.ARRAY_A— возвращает ассоциативный массив.ARRAY_N— возвращает числовой массив.
По умолчанию:
OBJECT -
$filter(string) – Дополнительный фильтр для очистки. Смотритеsanitize_post_field().По умолчанию:
'raw'
Примеры
Пример 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] => 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
)
��ример 2: Проверка, является ли пост ревизией
Этот код демонстрирует, как проверить, является ли пост ревизией:
function wp_is_post_revision($post) {
if (!$post = wp_get_post_revision($post)) {
return false;
}
return (int) $post->post_parent;
}
Изменения
- С версии 2.6.0 – Функция была введена.
Код функции
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;
}
Теперь вы знаете, как использовать функцию wp_get_post_revision() для работы с ревизиями постов в WordPress. Если у вас есть вопросы, не стесняйтесь задавать их!