Работа с визуальным редактором WordPress — это удобный способ создавать и редактировать контент. Но иногда случается, что вы внесли множество изменений, которые хотите отменить целиком, вернув пост к последней сохранённой версии. В этой статье мы разберём, как удалить все изменения в визуальном редакторе WordPress и откатить пост к сохранённой версии, используя встроенные инструменты и сторонние плагины.
Почему важно уметь откатывать изменения в WordPress
При редактировании контента вы можете случайно удалить важные блоки или внести нежелательные правки. Визуальный редактор Gutenberg предлагает базовые функции отмены и возврата, но они работают только в рамках текущей сессии и не сохраняются между перезагрузками страницы. Поэтому для полноценного контроля изменений нужно знать, как пользоваться ревизиями и дополнительными инструментами.
Ревизии — это встроенный механизм WordPress, который автоматически сохраняет версии постов при каждом обновлении. Это позволяет откатиться к предыдущему состоянию контента, если изменения оказались ошибочными.
Кроме того, существуют плагины, которые расширяют возможности работы с ревизиями и позволяют более удобно управлять версиями.
Как откатить пост к последней сохранённой версии с помощью стандартных ревизий WordPress
Чтобы удалить все изменения и вернуть пост к последнему сохранённому состоянию, выполните следующие шаги:
- Откройте нужный пост в редакторе WordPress.
- В правой панели найдите раздел Ревизии (если не видите, включите в настройках экрана).
- Нажмите на ссылку с количеством ревизий, чтобы перейти к просмотру предыдущих версий.
- Используйте ползунок или кнопки для выбора нужной версии.
- Нажмите Восстановить эту ревизию.
Так вы вернёте весь контент статьи к выбранному состоянию, удалив все изменения, сделанные после этого.
Если вы хотите реализовать подобное откатывание программно, можно использовать следующий пример функции:
function wpmagazin_restore_post_revision($post_id, $revision_id) {
if (wp_is_post_revision($revision_id)) {
$revision = get_post($revision_id);
if ($revision && $revision->post_parent == $post_id) {
wp_restore_post_revision($revision_id);
return true;
}
}
return false;
}Эта функция проверяет, что указанный ID является ревизией данного поста, и восстанавливает её.
Работа с отменой изменений в визуальном редакторе Gutenberg: горячие клавиши и советы
Редактор Gutenberg поддерживает базовые горячие клавиши для отмены и повтора действий:
Ctrl + Z(Cmd + Z на Mac) — отмена последнего действия;Ctrl + Shift + ZилиCtrl + Y— повтор отменённого действия.
Однако эти действия работают только в рамках текущей сессии и не сохраняются при обновлении страницы. Поэтому если вы закрыли вкладку или обновили страницу, отменить изменения таким способом уже нельзя.
Для сохранности рекомендуется часто сохранять черновики и пользоваться ревизиями.
Как сбросить изменения в блоках редактора вручную
В случае, если изменения касаются отдельных блоков, можно удалить проблемный блок и добавить его заново. Для этого:
- Выделите блок.
- Нажмите на три точки в панели инструментов блока.
- Выберите Удалить блок.
- Добавьте блок заново, скопировав из предыдущей версии или шаблона.
Это простой способ удалить изменения, если они касаются ограниченного участка контента.
Плагины для расширенного управления ревизиями и восстановлением контента
Для удобной работы с откатом и удалением изменений рекомендуем обратить внимание на следующие плагины:
- WP Revisions Control — позволяет ограничить количество ревизий и управлять ими.
- Revisionize — создаёт копии постов для редактирования без изменения опубликованной версии, что удобно для тестирования изменений.
- Simple History — показывает историю изменений в админке, включая кто и когда редактировал пост.
Установка плагина WP Revisions Control:
- Перейдите в раздел Плагины > Добавить новый в админке WordPress.
- В поиске введите «WP Revisions Control».
- Установите и активируйте плагин.
- В настройках плагина установите лимит ревизий для постов и страниц.
Это поможет контролировать количество сохранённых версий и облегчит откат при необходимости.
Практический пример: автоматический откат изменений по кнопке с помощью кастомного плагина
Если вы хотите добавить на страницу редактирования поста кнопку для быстрого отката к последней ревизии, можно написать простой плагин:
<?php
/*
Plugin Name: WPMagazin Auto Restore Revision
Description: Добавляет кнопку для отката к последней ревизии
Version: 1.0
Author: WPMagazin
*/
add_action('add_meta_boxes', 'wpmagazin_add_restore_button');
function wpmagazin_add_restore_button() {
add_meta_box('wpmagazin_restore_meta', 'Восстановление ревизии', 'wpmagazin_render_restore_button', 'post', 'side', 'high');
}
function wpmagazin_render_restore_button($post) {
$revisions = wp_get_post_revisions($post->ID);
if (empty($revisions)) {
echo '<p>Ревизий нет</p>';
return;
}
$last_revision = reset($revisions);
$nonce = wp_create_nonce('wpmagazin_restore_revision');
echo '<form method="post">';
echo '<input type="hidden" name="revision_id" value="' . esc_attr($last_revision->ID) . '" />';
echo '<input type="hidden" name="post_id" value="' . esc_attr($post->ID) . '" />';
echo '<input type="hidden" name="wpmagazin_nonce" value="' . esc_attr($nonce) . '" />';
echo '<input type="submit" name="wpmagazin_restore" class="button button-secondary" value="Восстановить последнюю ревизию" />';
echo '</form>';
}
add_action('admin_init', 'wpmagazin_handle_restore_post');
function wpmagazin_handle_restore_post() {
if (!isset($_POST['wpmagazin_restore'])) {
return;
}
$nonce = $_POST['wpmagazin_nonce'] ?? '';
if (!wp_verify_nonce($nonce, 'wpmagazin_restore_revision')) {
wp_die('Ошибка безопасности');
}
$post_id = intval($_POST['post_id']);
$revision_id = intval($_POST['revision_id']);
if (wpmagazin_restore_post_revision($post_id, $revision_id)) {
wp_redirect(admin_url('post.php?post=' . $post_id . '&action=edit&restored=1'));
exit;
} else {
wp_die('Не удалось восстановить ревизию');
}
}
function wpmagazin_restore_post_revision($post_id, $revision_id) {
if (wp_is_post_revision($revision_id)) {
$revision = get_post($revision_id);
if ($revision && $revision->post_parent == $post_id) {
wp_restore_post_revision($revision_id);
return true;
}
}
return false;
}
?>Этот код добавляет метабокс с кнопкой восстановления последней ревизии. После нажатия пост откатится к последней сохранённой версии.
Как избежать потери данных и минимизировать необходимость отката
Чтобы не терять время на восстановление и откат изменений, следуйте простым рекомендациям:
- Часто сохраняйте черновики при редактировании.
- Используйте плагины для контроля и ограничения количества ревизий.
- Перед масштабными изменениями делайте резервные копии базы данных и файлов.
- Используйте функцию «Предварительный просмотр» для проверки изменений до публикации.
- Если требуется серьёзное тестирование, создавайте дубли постов и редактируйте их отдельно.
Это поможет сохранить целостность контента и избежать потери важных данных.