wp_delete_post_revision() WP 2.6.0

Видаляє ревізію запису за ID.

Порядок роботи:

  1. Перевіряється існування ревізії за допомогою функції wp_get_post_revision() . Якщо ревізію не знайдено, відразу поверне null.
  2. Якщо ревізія знайдено, її ID передається функції wp_delete_post() на видалення.
  3. Якщо видалення пройшло успішно, спрацьовує хук-подія wp_delete_post_revision .
  4. Повертається результат операції.

Хуки з функції
wp_delete_post_revision( $revision_id );
$revision_id
(число/WP_Post) (обов’язковий)
ID ревізії чи її об’єкт.

Приклади

0

#1 Видалимо ревізію з ID = 7

$rev = wp_delete_post_revision(7);

if ( $ rev ) {
	// ревізія видалена успішно
} else {
	// Такої ревізії не знайшлося
}
0

#2 Видалимо всі ревізії зазначеного посту

Global $wpdb;
$ Postid = 5; // ID поста ревізії якого видалятимемо

// Отримаємо всі ревізії посту
$revision_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'revision'", $postid ) );
foreach( $revision_ids as $revision_id ){
	wp_delete_post_revision( $revision_id );
}

список змін

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

Код wp_delete_post_revision() WP 6.0.2

function wp_delete_post_revision( $revision_id ) {
	$ revision = wp_get_post_revision ($ revision_id);
	if ( ! $revision ) {
		return $revision;
	}

	$delete = wp_delete_post( $revision->ID );
	if ($ delete) {
		/**
		 * Fires once a post revision has been deleted.
		 *
		 * @ Since 2.6.0
		 *
		 * @param int $revision_id Post revision ID.
		 * @param WP_Post $revision Post revision об'єкт.
		 */
		do_action( 'wp_delete_post_revision', $revision->ID, $revision);
	}

	return $delete;
}

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

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