Встала задача вывести графики статистики, формируемые плагином WP Statistics на странице сайта в публичной его части. Просмотр страницы разрешен только пользователям из группы администраторы
По-умолчанию плагин отображает собранную статистику на отдельной странице в административной части вордпресс.
Немного покопавшись в коде обнаружил, что плагин не проверяет откуда к нему приходят запросы на отображение собранной статистики — из админки или с фронта.
Именно это позволило быстро найти точку, в которую можно было бы делать запросы и получать данные от плагина.
Код получился совсем небольшой. Гораздо больше места и текста в итоге занимает html-обвязка вывода на странице:
<?php function show_widjet_monitoring($func, $text){ ?> <div class="postbox"> <div class="handlediv" title="Нажмите для переключения"><br></div> <h3 class="hndle ui-sortable-handle"><span><?php echo $text?></span></h3> <div class="inside"> <?php $func();?> </div> </div> <?php } ?>
Это функция отображения блока статистики. На вход получает в параметре $func имя функции, которая формирует нужный блок отчетности и в параметре $text Заголовок блока.
Далее следует блок вызовов функции на нужной странице сайта.
<?php show_widjet_monitoring('wp_statistics_summary_widget', 'Резюме');?> <?php show_widjet_monitoring('wp_statistics_browsers_widget', 'Браузеры');?> <?php show_widjet_monitoring('wp_statistics_referring_widget', 'Лучшие сайты-источники переходов');?> <?php show_widjet_monitoring('wp_statistics_countries_widget', 'ТОП 10 стран');?> <?php show_widjet_monitoring('wp_statistics_hitsmap_widget', 'Карта сегодняшних посетителей');?> <?php show_widjet_monitoring('wp_statistics_hits_widget', 'Хиты статистика');?> <?php show_widjet_monitoring('wp_statistics_search_widget', 'Поиск двигатель рефералов');?> <?php show_widjet_monitoring('wp_statistics_words_widget', 'Последние слова поиска');?> <?php show_widjet_monitoring('wp_statistics_pages_widget', 'ТОП 10 страниц');?> <?php show_widjet_monitoring('wp_statistics_recent_widget', 'Последние посетители');?> <?php show_widjet_monitoring('wp_statistics_top_visitors_widget', 'ТОП 10 посетителей сегодня');?>
Названия графиков были взяты из перевода плагина в таком же виде, в каком было скачано из интернета. Смысловая нагрузка некоторых заголовков для меня остается загадкой и по сей день 🙂
Вот такое простое решение можно реализовать на любом сайте, если не хотите пускать определенных людей в админку вордпресс.