wp_get_post_revision() WP 2.6.0
Получает ревизию поста по указанной ID ревизии. Если записи с указанным ID нет или это не ревизия вернет null.
Ревизиями считаются записи, у которых поле post_type = revision
.
Работает на основе: get_post()
Основа для: wp_is_post_autosave(), wp_is_post_revision()
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'
Примеры
#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 ) */
#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 get post revision WP 5.6.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;
}