Отчетность WordPress по типам записей: настройка и примеры

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

Почему важна отчетность по типам записей в WordPress

Типы записей (post types) — это база контента в WordPress: записи, страницы, а также кастомные типы, например, товары, проекты, отзывы. Отчетность позволяет:

  • Понять структуру сайта и распределение контента.
  • Оптимизировать работу редакторов, контролировать наполнение.
  • Анализировать активность по созданию и изменению разных типов записей.
  • Автоматизировать отчеты для клиентов или руководства.

Без отчетов легко упустить проблемы с наполнением или неэффективным использованием типов записей.

Использование плагинов для отчетности по типам записей в WordPress

Для тех, кто не хочет писать код, существуют готовые решения:

1. WP-Statistics с кастомизацией

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

2. Admin Columns Pro

Admin Columns Pro — плагин для настройки столбцов в админке, можно добавить фильтры и колонки с количеством записей по типам. Полезен для визуального контроля и быстрой аналитики.

3. Custom Reports by WPGPT

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

Создание собственного отчета по типам записей с помощью кода

Если нужен точный и кастомный отчет, лучше написать свой код с использованием WP_Query и админских хуков. Рассмотрим пример функции, которая выводит количество записей по всем зарегистрированным типам.

function wpstuff_get_post_type_report() {
    $post_types = get_post_types(['public' => true], 'objects');
    $report = [];
    foreach ($post_types as $post_type) {
        $count = wp_count_posts($post_type->name);
        $report[$post_type->label] = $count->publish;
    }
    return $report;
}

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

function wpstuff_render_post_type_report_page() {
    $report = wpstuff_get_post_type_report();
    echo '<h2>Отчет по типам записей</h2>';
    echo '<table class="wp-list-table widefat fixed">';
    echo '<thead><tr><th>Тип записи</th><th>Опубликовано</th></tr></thead>';
    echo '<tbody>';
    foreach ($report as $type => $count) {
        echo "<tr><td>{$type}</td><td>{$count}</td></tr>";
    }
    echo '</tbody></table>';
}

Чтобы добавить страницу с отчетом в админку, используем хук:

function wpstuff_add_report_menu() {
    add_menu_page(
        'Отчет по типам записей',
        'Отчет контента',
        'manage_options',
        'wpstuff-post-type-report',
        'wpstuff_render_post_type_report_page',
        'dashicons-analytics',
        20
    );
}
add_action('admin_menu', 'wpstuff_add_report_menu');

Расширение отчета: фильтрация по статусам и датам

Для полноценного анализа полезно учитывать статусы (черновики, на рассмотрении) и временные фильтры. Можно расширить функцию, добавив параметры:

function wpstuff_get_post_type_report_extended($post_status = 'publish', $date_query = []) {
    $post_types = get_post_types(['public' => true], 'objects');
    $report = [];
    foreach ($post_types as $post_type) {
        $args = [
            'post_type' => $post_type->name,
            'post_status' => $post_status,
            'date_query' => $date_query,
            'fields' => 'ids',
            'nopaging' => true
        ];
        $query = new WP_Query($args);
        $report[$post_type->label] = $query->found_posts;
    }
    return $report;
}

Пример вызова для отчетности по черновикам за последнюю неделю:

$report = wpstuff_get_post_type_report_extended('draft', [
    [
        'after' => '1 week ago'
    ]
]);

Визуализация отчета с использованием графиков

Для удобства анализа можно подключить библиотеки, например Chart.js, чтобы строить графики по данным отчетов.

Пример вывода простого столбчатого графика:

<canvas id="wpstuffChart" width="600" height="400"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
const ctx = document.getElementById('wpstuffChart').getContext('2d');
const chart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ["Записи", "Страницы", "Проекты"], // вставьте динамически
        datasets: [{
            label: 'Количество записей',
            data: [100, 50, 20], // динамические данные
            backgroundColor: 'rgba(54, 162, 235, 0.5)',
        }]
    },
    options: {
        scales: {
            y: { beginAtZero: true }
        }
    }
});
</script>

В реальном решении данные можно передавать из PHP в JS через wp_localize_script.

Автоматизация отчетов и экспорт

Чтобы не заходить вручную, можно настроить автоматическую отправку отчётов с помощью wp_cron и отправлять их по email или сохранять в CSV.

Пример функции экспорта в CSV:

function wpstuff_export_post_type_report_csv($report) {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="post_type_report.csv"');
    $output = fopen('php://output', 'w');
    fputcsv($output, ['Тип записи', 'Опубликовано']);
    foreach ($report as $type => $count) {
        fputcsv($output, [$type, $count]);
    }
    fclose($output);
    exit;
}

Идеальный вариант — продумать интерфейс в админке для скачивания отчетов с нужными фильтрами.

Заключение

Отчетность по типам записей — мощный инструмент для контроля и анализа контента в WordPress. Сочетание готовых плагинов и собственного кода позволяет построить гибкое решение под любые задачи. Используйте описанные подходы для повышения эффективности вашего сайта и удобства работы с контентом.

Как создать многоуровневую навигацию в WordPress с примерами кода
18.02.2026
WooCommerce: как автоматически удалять отзывы после определённого срока
13.06.2026
Как удалить неиспользуемые таксономии в WordPress: практическое руководство с примерами кода
24.03.2026
Оптимизация браузерных исключений ошибок WordPress
20.05.2025
Как создать собственный REST API endpoint в WordPress
02.12.2025