WP_DELETE_POST_REVISION() │ WP 2.6.0
Функция WP_DELETE_POST_REVISION() предназначена для удаления ревизии поста в WordPress. Она удаляет запись из таблицы постов, соответствующую указанной ревизии.
Использование
Функция используется внутри wp_save_post_revision(), чтобы управлять ревизиями постов.
Хуки функции
wp_delete_post_revision— хук, который срабатывает после удаления ревизии поста.
Возвращаемое значение
Функция возвращает объект поста (WP_Post), если ревизия была успешно удалена. Если произошла ошибка, функция вернет null или false.
Синтаксис
wp_delete_post_revision( $revision );
Параметры
$revision(int|WP_Post) — обязательный параметр. Это идентификатор ревизии или объект ревизии.
Примеры использования
Пример 1: Удалить ревизию с ID = 7
$rev = wp_delete_post_revision( 7 );
if ( $rev ) {
// Ревизия успешно удалена
} else {
// Ревизия с таким ID не найдена
}
Пример 2: Удалить все ревизии определенного поста
global $wpdb;
$postid = 5;
// Получаем все ревизии поста
$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 в WordPress:
function wp_delete_post_revision( $revision ) {
$revision = wp_get_post_revision( $revision );
if ( ! $revision ) {
return $revision;
}
$delete = wp_delete_post( $revision->ID );
if ( $delete ) {
/**
* Срабатывает после успешного удаления ревизии поста.
*
* @param int $revision_id ID ревизии поста.
* @param WP_Post $revision Объект ревизии поста.
*/
do_action( 'wp_delete_post_revision', $revision->ID, $revision );
}
return $delete;
}
Связанные функции
При работе с ревизиями постов также могут быть полезны следующие функции:
wp_delete_auto_drafts()— удаляет автоматические черновики.wp_get_post_revision()— получает ревизию поста по ID.wp_get_post_revisions()— получает все ревизии поста.wp_is_post_autosave()— проверяет, является ли пост автосохранением.wp_is_post_revision()— проверяет, является ли пост ревизией.wp_revisions_enabled()— проверяет, включены ли ревизии для поста.wp_revisions_to_keep()— определяет, сколько ревизий сохранять.wp_save_post_revision()— сохраняет текущую версию поста как ревизию.wp_text_diff()— сравнивает текст ревизий.
Эта статья поможет вам лучше понять, как работает функция удаления ревизий в WordPress и как ее можно использовать в различных сценариях.