Как установить ограничение на число публикаций в WordPress для конкретного пользователя

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

Почему важно ограничивать число публикаций на WordPress

Контроль над количеством публикаций помогает:

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

Часто стандартных настроек WordPress для этого нет, поэтому приходится использовать кастомные решения.

Реализация ограничения через код на примере wp-1.ru

Добавьте следующий код в файл functions.php вашей активной темы или в отдельный плагин. Код ограничит число публикаций типа "post" для пользователя с ролью "author" до 5 штук.

function wp1_limit_posts_number($data, $postarr) {
    // Проверяем, создаётся ли новый пост
    if ($data['post_type'] === 'post' && $data['post_status'] === 'publish') {
        $user_id = get_current_user_id();
        $user = get_userdata($user_id);

        // Ограничение для роли 'author'
        if (in_array('author', $user->roles)) {
            $count = count_user_posts($user_id, 'post', true); // считаем опубликованные

            if ($count >= 5) {
                // Отменяем публикацию и возвращаем ошибку
                wp_die('Превышено максимальное количество опубликованных записей (5) для вашей роли.');
            }
        }
    }
    return $data;
}
add_filter('wp_insert_post_data', 'wp1_limit_posts_number', 10, 2);

В этом коде мы используем фильтр wp_insert_post_data, чтобы перехватить процесс сохранения записи. Если пользователь с ролью «author» уже имеет 5 и более опубликованных постов, публикация новой будет заблокирована с сообщением об ошибке.

Расширение ограничения на другие роли и типы записей

Можно легко добавить другие роли или типы постов, например, для типа "custom_post_type" или роли "contributor". Для этого модифицируйте условие:

if (($data['post_type'] === 'post' || $data['post_type'] === 'custom_post_type') 
    && in_array($user->roles, ['author', 'contributor'])) { ... }

Использование плагинов для ограничения количества публикаций

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

  • PublishPress Permissions — мощный плагин для управления ролями и правами, позволяет настроить ограничения по публикациям.
  • WP Limit Posts
  • Restrict Author Posting

Все эти плагины можно найти на официальном репозитории WordPress или на сайте WPSHOP.

Практические советы по внедрению ограничения на wp-1.ru

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

2. Уведомляйте пользователей о лимите в интерфейсе — добавьте предупреждение в админке с помощью хука admin_notices.

3. Продумайте логику для исключений — например, администраторы или редакторы не должны ограничиваться.

Пример уведомления пользователя о лимите публикаций

function wp1_show_limit_notice() {
    $user = wp_get_current_user();
    if (in_array('author', $user->roles)) {
        $count = count_user_posts($user->ID, 'post', true);
        if ($count >= 5) {
            echo '<div class="notice notice-error is-dismissible"><p>Вы достигли лимита в 5 опубликованных записей.</p></div>';
        }
    }
}
add_action('admin_notices', 'wp1_show_limit_notice');

Выводы

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

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

Как правильно удалить кэш Redis в WordPress: практическое руководство
13.01.2026
Как избежать конфликтов между плагинами в WordPress: практические советы и примеры кода
25.12.2025
Как создать автоматический sitemap в WordPress с помощью кода и плагинов
22.12.2025
Автоматическое удаление старого контента в WordPress
03.02.2026
Как создать автоматический бэкап WordPress: практическое руководство
28.11.2025