Одна из актуальных задач для администраторов и разработчиков WordPress — быстро видеть, какие изменения были сделаны на сайте за последнее время. Это удобно для контроля контента, отслеживания активности редакторов и быстрой диагностики возможных проблем.
Зачем отображать последние изменения в админке WordPress
По умолчанию WordPress не предоставляет удобного виджета или раздела для отображения последних изменений, сделанных с записями, страницами и другими типами контента. Администратору приходится переходить в разные разделы, чтобы посмотреть, кто и когда что изменил.
Добавление такого функционала помогает:
- Ускорить контроль за внесёнными правками
- Снизить риски ошибок и конфликтов при работе нескольких редакторов
- Обеспечить прозрачность и отчётность в команде
В этой статье разберём, как добавить в административную панель WordPress виджет с последними изменениями, используя плагины и собственные решения на PHP.
Использование плагинов для отображения последних изменений
Плагин Simple History
Один из популярных и простых в использовании плагинов — Simple History. Он ведёт историю изменений в админке, включая публикацию и редактирование записей, страниц, входы пользователей и другие события.
После установки и активации плагина в панели появится новый виджет с последними изменениями. Можно настроить, какие типы событий отображать.
Плагин WP Activity Log
Более продвинутый инструмент — WP Activity Log. Он позволяет вести детальные логи активности пользователей и изменений на сайте.
Плагин поддерживает фильтрацию по типам изменений, уведомления по email и интеграцию с другими сервисами. Идеально подходит для крупных проектов с командной работой.
Создание собственного виджета с последними изменениями через код
Если хотите обойтись без плагинов и сделать минималистичный функционал, можно добавить собственный виджет на страницу админки с помощью PHP. Ниже пример кода, который выводит последние 5 изменённых записей и страниц.
<?php
// Добавляем виджет на главную страницу админки
add_action('wp_dashboard_setup', 'wpdream_add_last_changes_widget');
function wpdream_add_last_changes_widget() {
wp_add_dashboard_widget(
'wpdream_last_changes',
'Последние изменения контента',
'wpdream_display_last_changes'
);
}
function wpdream_display_last_changes() {
$args = array(
'post_type' => array('post', 'page'),
'post_status' => 'any',
'orderby' => 'modified',
'order' => 'DESC',
'posts_per_page' => 5
);
$recent_posts = get_posts($args);
if (empty($recent_posts)) {
echo '<p>Последних изменений не найдено.</p>';
return;
}
echo '<ul>';
foreach ($recent_posts as $post) {
$edit_link = get_edit_post_link($post->ID);
$modified_date = get_the_modified_date('d.m.Y H:i', $post->ID);
echo '<li><a href="' . esc_url($edit_link) . '">' . esc_html($post->post_title) . '</a> — изменено ' . esc_html($modified_date) . '</li>';
}
echo '</ul>';
}
?>Этот код можно вставить в файл functions.php вашей темы или в собственный плагин. Он создаст на главной странице админки виджет с пятью последними изменёнными записями и страницами с ссылками на их редактирование.
Расширение функционала виджета
Чтобы сделать виджет более полезным, можно добавить:
- Отображение пользователя, который внёс последнее изменение
- Фильтры по типам записей или авторам
- Вывод изменений кастомных типов записей
Например, чтобы добавить автора последнего изменения, модифицируем функцию:
function wpdream_display_last_changes() {
$args = array(
'post_type' => array('post', 'page'),
'post_status' => 'any',
'orderby' => 'modified',
'order' => 'DESC',
'posts_per_page' => 5
);
$recent_posts = get_posts($args);
if (empty($recent_posts)) {
echo '<p>Последних изменений не найдено.</p>';
return;
}
echo '<ul>';
foreach ($recent_posts as $post) {
$edit_link = get_edit_post_link($post->ID);
$modified_date = get_the_modified_date('d.m.Y H:i', $post->ID);
$author_id = get_post_meta($post->ID, '_edit_last', true);
$author_name = $author_id ? get_the_author_meta('display_name', $author_id) : 'Неизвестно';
echo '<li><a href="' . esc_url($edit_link) . '">' . esc_html($post->post_title) . '</a> — изменено ' . esc_html($modified_date) . ' пользователем ' . esc_html($author_name) . '</li>';
}
echo '</ul>';
}Отслеживание изменений с помощью плагина Clearfy Pro
Если вы используете плагин Clearfy Pro, в нем есть модуль управления оптимизацией и безопасностью, который включает ведение журнала изменений и действий пользователей.
Clearfy Pro позволяет настраивать, какие события логировать, и выводить их в удобном интерфейсе. Это расширяет штатные возможности WordPress и помогает контролировать работу сайта без установки дополнительных плагинов.
Советы по безопасности и производительности при ведении логов изменений
Ведение истории изменений — полезная практика, но она может увеличить нагрузку на базу данных и размер резервных копий.
Чтобы избежать проблем, рекомендуем:
- Ограничивать количество записей в логе и период их хранения
- Использовать специализированные плагины с оптимизацией запросов
- Регулярно очищать устаревшие записи логов
- Ограничивать доступ к журналам только доверенным администраторам
Если вы реализуете собственное решение, продумайте кэширование и минимизацию запросов в БД.
Итоги
Добавление отображения последних изменений в административную панель WordPress помогает эффективно управлять сайтом и отслеживать работу редакторов и администраторов. Используйте готовые плагины, такие как Simple History или WP Activity Log, либо создайте собственный виджет с помощью PHP-кода, приведённого выше.
Для расширенных возможностей обратите внимание на Clearfy Pro, который интегрирует функции ведения журнала изменений с оптимизацией сайта.
Такой подход значительно повышает прозрачность и безопасность проекта, облегчает контроль и поддержку сайта на WordPress.