HomeWEB мастеруСтатьи • Добавляем информер посетителей онлайн в админ бар


Добавляем информер посетителей онлайн в админ бар Продолжаем доводить блог до идеала...

📝 Пост №   247  от 28 января 2026   |   В категории WEB мастеру, Статьи   |   Комментариев нет Print

user-online Сегодня хотелось бы вам представить вариант информера с количеством пользователей онлайн в админ баре WordPress. Эта маленькая функция позволит вам видеть, что ваш блог не «мертвый» в данный отрезок времени. Удобно? Безусловно! Без тяжелых плагинов, без кучи кода… простая функция, которую просто прописываете в ваш funtions.php и все — в админ баре появляется dash icon с цифрой онлайн посетителей.

Информации лишней не бывает. Этот «финт ушами» оживит ваш блог… даже если это будете видеть только вы. Рекомендую отключить вывод админ бара для посетителей, т.к. им необязательно видеть и пользоваться этим инструментом в целях безопасности…

Во-первых, отключаем видимость админ бара для посетителей и зарегистрированных. Для этого прописываем в любимый functions.php маленький кодик:


//Отключаем админ бар для всех, кроме админа
if ( ! current_user_can( ‘manage_options’ ) ) {
	show_admin_bar( false );
}

Теперь подключаем наш код вывода зарегистрированных посетителей онлайн.

Как это работает?

Уникальность: Поле ip теперь является PRIMARY KEY. Это гарантирует, что один человек = одна строка в базе.

Никакой накрутки: При обновлении страницы срабатывает REPLACE, который просто сдвигает время last_visit вперед для вашего IP, а не создает новую запись.

Чистота базы: Функция подсчета сама «подметает» базу, удаляя старые записи перед каждым выводом числа.

Так как вы — админ, после установки кода счетчик может показать «0» (если на сайте сейчас нет других людей). Это нормально и означает, что фильтр работает. Чтобы увидеть цифру «1», откройте свой сайт через режим инкогнито в браузере (там вы будете считаться обычным гостем) и обновите страницу в основной вкладке, где вы админ.

Dashicons: Я использовал стандартную иконку WordPress dashicons-admin-users, чтобы она идеально вписалась в дизайн админки. Чтобы считать всех посетителей (и авторизованных, и простых гостей), нам нельзя привязываться к user_id. Это создаст больше записей в таблице options. Вместо этого мы будем использовать IP-адрес или ID сессии. И, чтобы не засорять базу, будем брать короткий «срок жизни» записи (всего лишь 5 минут!).


// Выводим в админ баре счетчик посетителей онлайн. (Гости + Юзеры)
// 1. Создание таблицы при активации темы
add_action(‘after_setup_theme’, ‘vst_create_online_table’);
function vst_create_online_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . ‘online_track’;
    $charset_collate = $wpdb->get_charset_collate();
    $sql = «CREATE TABLE IF NOT EXISTS $table_name (
        ip varchar(45) NOT NULL,
        last_visit datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (ip)
    ) $charset_collate;»;
    require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
    dbDelta($sql);
}
// 2. Регистрация визита (только для гостей и не-админов)
add_action(‘wp_head’, ‘vst_track_visitor_activity’);
function vst_track_visitor_activity() {
    // Если пользователь — админ, выходим и не записываем его в базу
    if (current_user_can(‘manage_options’)) {
        return;
    }
    global $wpdb;
    $table_name = $wpdb->prefix . ‘online_track’;
    $ip = $_SERVER[‘REMOTE_ADDR’];
    $wpdb->query($wpdb->prepare(
        «REPLACE INTO $table_name (ip, last_visit) VALUES (%s, NOW())»,
        $ip
    ));
}
// 3. Подсчет и очистка старых данных
function vst_get_online_count() {
    global $wpdb;
    $table_name = $wpdb->prefix . ‘online_track’;
    // Удаляем записи старше 5 минут
    $wpdb->query(«DELETE FROM $table_name WHERE last_visit < NOW() - INTERVAL 5 MINUTE");

    return (int) $wpdb->get_var(«SELECT COUNT(*) FROM $table_name»);
}
// 4. Вывод в админ-бар
add_action(‘admin_bar_menu’, ‘vst_add_online_to_admin_bar’, 999);
function vst_add_online_to_admin_bar($wp_admin_bar) {
    if (!current_user_can(‘manage_options’)) return;
    $count = vst_get_online_count();
    $wp_admin_bar->add_node([
        ‘id’    => ‘users_online’,
        ‘title’ => ‘<span class="ab-icon dashicons dashicons-groups"></span> Посетителей: ‘ . $count,
        ‘href’  => ‘#’,
        ‘meta’  => [
            ‘title’ => ‘Уникальные пользователи (кроме админов) за 5 минут’,
        ],
    ]);
}

Теперь у вас в админ баре появится dash icon не с одиночным изображением человечка, а с тремя. Вот так, просто вы сможете «лицезреть» всех гостей своего блога. Ну, а если вы хотите видеть полную статистику посетителей с показом посещенных ими страниц, то вам понадобится мой легкий и информативный плагин — MP Statistic PRO, который будет выводить на странице админки плагина график и список посетителей с их данными — IP, флаг страны, город и страницу посещения.

Вам интересен такой вариант? Пишите в комментах и подписывайтесь на обновления блога. В одной из будущих публикаций выложу этот плагин.



Удачи и до новых встреч!
С уважением, MasterPRO


Рекомендую ознакомиться...



Подпишитесь на новости блога и получайте сообщения в числе первых!


На сегодня в блоге вашему вниманию представлено уже 263 публикаций!
Ваши данные в полной безопасности. Мы не рассылаем спам.

Просмотров страницы: 293
Метки: life_hacks | Web мастеру | wordpress | Новости блога |
Последнее обновление статьи: 26.01.2026
Короткая ссылка: https://master-sv.com/blog/?p=15837
Лучшие плагины для  WordPress

Наберитесь терпения - новые публикации в процессе осмысления...




Подписаться
Уведомить о
guest
0 комментариев

Вход на сайт

  |  

Архив



Советую приобрести!


Мой Pinterest

🛡️ AntiSpam Master заблокировал 2942 вредоносных атак на этот блог.