Создание пользовательского виджета для панели администратора WordPress

В этом материале подробно разберём, как создать собственный виджет для панели администратора WordPress. Такие виджеты помогают вывести важную информацию, напоминания или динамические данные прямо на главную страницу админки, что ускоряет работу с сайтом и повышает удобство.

Что такое виджеты админ-панели WordPress и зачем они нужны

Виджеты админ-панели — это маленькие блоки с информацией или инструментами, которые отображаются на главной странице панели администратора (Dashboard). Они бывают стандартными (например, последние записи, активность) и пользовательскими. Создавая свои виджеты, можно вывести любую нужную информацию: данные из внешних сервисов, статистику, напоминания, ссылки на часто используемые разделы и многое другое.

Преимущества создания собственного виджета:

  • Повышение продуктивности за счёт быстрого доступа к важной информации.
  • Улучшение пользовательского опыта для администраторов и редакторов сайта.
  • Возможность интеграции с другими плагинами и сервисами.

Далее покажу, как сделать это максимально просто и эффективно.

Добавление виджета на панель администратора WordPress — базовый пример

Чтобы добавить свой виджет, нужно использовать хук wp_dashboard_setup и функцию add_meta_box. Вот минимальный пример, который добавляет виджет с приветственным сообщением:

function wptem_add_dashboard_widget() {
    wp_add_dashboard_widget(
        'wptem_custom_widget',
        'Приветствие от WPTem',
        'wptem_custom_widget_display'
    );
}
add_action('wp_dashboard_setup', 'wptem_add_dashboard_widget');

function wptem_custom_widget_display() {
    echo '<p>Добро пожаловать в админ-панель вашего сайта на WordPress!</p>';
}

Этот код добавляет простой виджет с заголовком и текстом. Чтобы его использовать, достаточно вставить в файл functions.php вашей темы или в отдельный плагин.

Разбор кода

wp_add_dashboard_widget принимает три параметра: уникальный ID виджета, название заголовка и функцию, которая выводит содержимое. В нашем случае функция wptem_custom_widget_display просто выводит строку с приветствием.

Добавление динамического контента в виджет: пример с выводом статистики

Один из частых кейсов — вывод статистики по сайту, например, количество опубликованных записей, комментариев, страниц. Сделаем такой виджет.

function wptem_dashboard_stats_widget() {
    wp_add_dashboard_widget(
        'wptem_stats_widget',
        'Статистика сайта',
        'wptem_stats_widget_display'
    );
}
add_action('wp_dashboard_setup', 'wptem_dashboard_stats_widget');

function wptem_stats_widget_display() {
    $posts_count = wp_count_posts()->publish;
    $pages_count = wp_count_posts('page')->publish;
    $comments_count = wp_count_comments()->approved;

    echo '<ul>';
    echo '<li>Опубликованных записей: ' . $posts_count . '</li>';
    echo '<li>Опубликованных страниц: ' . $pages_count . '</li>';
    echo '<li>Одобренных комментариев: ' . $comments_count . '</li>';
    echo '</ul>';
}

Этот виджет обновляет данные динамически при каждом заходе в админку и помогает быстро оценить состояние сайта.

Добавление кастомных настроек и кнопок в виджет

Для удобства можно добавить в виджет кнопки или ссылки, которые выполняют полезные действия, например, очистку кэша, переход к настройкам плагина или запуск скрипта.

Пример виджета с кнопкой, которая запускает AJAX-запрос для очистки кэша с помощью плагина Clearfy Pro (если он установлен):

function wptem_clear_cache_widget() {
    wp_add_dashboard_widget('wptem_clear_cache', 'Очистка кэша', 'wptem_clear_cache_widget_display');
}
add_action('wp_dashboard_setup', 'wptem_clear_cache_widget');

function wptem_clear_cache_widget_display() {
    ?>
    <button id="wptem_clear_cache_btn" class="button button-primary">Очистить кэш</button>
    <div id="wptem_clear_cache_result" style="margin-top:10px;"></div>
    <script>
    document.getElementById('wptem_clear_cache_btn').addEventListener('click', function() {
        var btn = this;
        btn.disabled = true;
        btn.textContent = 'Идёт очистка...';
        fetch(ajaxurl + '?action=wptem_clear_cache_ajax')
            .then(response => response.json())
            .then(data => {
                document.getElementById('wptem_clear_cache_result').textContent = data.message;
                btn.disabled = false;
                btn.textContent = 'Очистить кэш';
            });
    });
    </script>
    <?php
}

add_action('wp_ajax_wptem_clear_cache_ajax', 'wptem_clear_cache_ajax_handler');
function wptem_clear_cache_ajax_handler() {
    if (function_exists('clearfy_pro_clear_cache')) {
        clearfy_pro_clear_cache();
        wp_send_json(['message' => 'Кэш успешно очищен']);
    } else {
        wp_send_json(['message' => 'Плагин Clearfy Pro не активен или функция не доступна']);
    }
} 

Этот код добавляет кнопку, при нажатии на которую происходит AJAX-запрос, вызывающий функцию очистки кэша плагина Clearfy Pro. Если плагин не установлен, выводится сообщение об ошибке. Такая интеграция полезна для быстрого управления сайтом без перехода в настройки.

Настройка расположения виджета и прав доступа

По умолчанию виджеты появляются на главной странице админки, но можно регистрировать их и на других страницах с помощью дополнительных параметров. Также рекомендуется ограничивать доступ к виджетам, чтобы их видели только администраторы или редакторы.

Пример ограничения по правам:

function wptem_add_dashboard_widget_with_permission() {
    if (current_user_can('manage_options')) { // Только админы
        wp_add_dashboard_widget('wptem_admin_only_widget', 'Виджет только для админов', 'wptem_admin_only_widget_display');
    }
}
add_action('wp_dashboard_setup', 'wptem_add_dashboard_widget_with_permission');

function wptem_admin_only_widget_display() {
    echo '<p>Этот виджет виден только администраторам.</p>';
}

Так вы можете создавать виджеты, которые будут доступны только определённым ролям пользователей.

Резюме и рекомендации

Создание собственных виджетов для панели администратора — мощный способ персонализировать и улучшить работу с сайтом на WordPress. Используйте приведённые примеры как основу и адаптируйте под свои задачи:

  • Выводите важную статистику и данные из сторонних сервисов.
  • Добавляйте кнопки и формы для быстрого взаимодействия с плагинами.
  • Ограничивайте доступ к виджетам по ролям пользователей.
  • Интегрируйте виджеты с REST API и AJAX для динамического обновления.

Если хотите расширить возможности, рекомендую посмотреть плагин Expert Review — он позволяет создавать обзоры и рейтинги, которые можно выводить в виджетах для админки и фронтенда.

Как создать свой шорткод в WordPress: практические примеры и советы
13.11.2025
Как удалить пустые категории в WordPress: эффективные методы и примеры кода
25.12.2025
Как создать свой плагин в WordPress: практическое руководство
28.11.2025
Как динамически изменять заголовки страниц в WordPress
18.12.2025
Как создать многоязычный сайт на WordPress
21.11.2025