Редактирование контента в WordPress — процесс, который требует внимательности и времени. Одной из важных функций для повышения удобства работы является автоматическое сохранение изменений, чтобы избежать потери данных при случайном закрытии вкладки, сбое браузера или перезагрузке страницы. В этой статье подробно рассмотрим, как добавить автоматическое сохранение в редактор WordPress, используя как готовые плагины, так и собственные решения на базе JavaScript и PHP.
Почему важно внедрять автоматическое сохранение в WordPress
Стандартный редактор WordPress по умолчанию уже поддерживает авто-сохранение, но оно срабатывает не всегда оптимально, особенно если вы создаете кастомные редакторы или хотите улучшить UX. Кроме того, в случае кастомных типов записей и сложных форм с мета-боксами стандартные механизмы могут не сохранять все данные автоматически.
Добавление собственного механизма авто-сохранения помогает:
- Уменьшить риск потери данных;
- Обеспечить плавный рабочий процесс для авторов и редакторов;
- Возможность кастомизации частоты и объема сохраняемых данных;
- Интеграция с внешними сервисами и плагинами.
Использование плагинов для автоматического сохранения
Для пользователей, которые не хотят углубляться в код, отлично подойдут готовые решения. Вот несколько полезных плагинов:
1. WP Auto Save
Простой и легкий плагин, который улучшает штатное авто-сохранение. Он позволяет задать интервал авто-сохранения и работает с классическим и блоковым редакторами.
Установить плагин можно из репозитория WordPress, а на wpshop.ru доступны подробные инструкции.
2. Revision Control
Не совсем авто-сохранение, но плагин позволяет контролировать количество ревизий, что помогает избежать переполнения базы данных и упрощает работу с сохранениями.
Создание собственного авто-сохранения в WordPress
Если нужно реализовать более гибкий механизм, можно использовать JavaScript с AJAX для периодической отправки данных на сервер.
Добавление JavaScript для авто-сохранения
В этом примере мы создадим скрипт, который каждые 30 секунд отправляет содержимое поста на сервер.
function wpapp_enqueue_autosave_script() {
if (get_post_type() !== 'post') return;
wp_enqueue_script('wpapp-autosave', plugin_dir_url(__FILE__) . 'js/wpapp-autosave.js', ['jquery'], '1.0', true);
wp_localize_script('wpapp-autosave', 'wpappAutosave', [
'ajax_url' => admin_url('admin-ajax.php'),
'post_id' => get_the_ID(),
'nonce' => wp_create_nonce('wpapp_autosave_nonce')
]);
}
add_action('admin_enqueue_scripts', 'wpapp_enqueue_autosave_script');Этот код подключает скрипт и передает ему AJAX URL и данные безопасности.
JavaScript (wpapp-autosave.js) пример:
jQuery(document).ready(function($) {
setInterval(function() {
var content = $('#content').val();
$.post(wpappAutosave.ajax_url, {
action: 'wpapp_autosave_post',
post_id: wpappAutosave.post_id,
content: content,
nonce: wpappAutosave.nonce
}, function(response) {
if(response.success) {
console.log('Сохранено автосохранением');
} else {
console.log('Ошибка автосохранения');
}
});
}, 30000); // 30 секунд
});Обработка AJAX-запроса на сервере
function wpapp_handle_autosave() {
check_ajax_referer('wpapp_autosave_nonce', 'nonce');
$post_id = intval($_POST['post_id']);
$content = wp_kses_post($_POST['content']);
if (!current_user_can('edit_post', $post_id)) {
wp_send_json_error('Нет прав на редактирование');
}
$update_result = wp_update_post([
'ID' => $post_id,
'post_content' => $content
], true);
if (is_wp_error($update_result)) {
wp_send_json_error($update_result->get_error_message());
}
wp_send_json_success('Содержимое сохранено');
}
add_action('wp_ajax_wpapp_autosave_post', 'wpapp_handle_autosave');Этот обработчик проверяет права, валидирует данные и сохраняет содержимое поста.
Особенности и рекомендации по авто-сохранению
При реализации авто-сохранения важно учитывать:
- Оптимизацию нагрузки на сервер — не делать запросы слишком часто;
- Проверку прав пользователя, чтобы избежать перезаписи чужих данных;
- Совместимость с плагинами кэширования и безопасности;
- Обработку ошибок и информирование пользователя о статусе сохранения;
- Возможность отмены авто-сохранения или ручного восстановления версии.
Интеграция с плагином Clearfy Pro для оптимизации
Если вы используете Clearfy Pro, он поможет оптимизировать работу сайта, снизить нагрузку и улучшить работу с ревизиями и авто-сохранениями, что особенно полезно при интенсивном редактировании.
Выводы по добавлению авто-сохранения в WordPress
Автоматическое сохранение — важный инструмент для обеспечения безопасности и удобства работы с контентом. Используя готовые плагины или создавая собственные решения на базе AJAX, вы сможете настроить этот процесс под свои задачи. При этом не забывайте о безопасности, оптимизации и взаимодействии с другими плагинами.