Встала задача вывести графики статистики, формируемые плагином 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 посетителей сегодня');?>
Названия графиков были взяты из перевода плагина в таком же виде, в каком было скачано из интернета. Смысловая нагрузка некоторых заголовков для меня остается загадкой и по сей день 🙂
Вот такое простое решение можно реализовать на любом сайте, если не хотите пускать определенных людей в админку вордпресс.