X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

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

Приклад
  • 2024-11-21
  • 4741 переглядів

  • Дизайн та розробка сайту

Доброго времени суток. 🙂

Большинство сайтов на WordPress используют именно как блоги или статейники, в принципе для этого эта система и была создана. Множество администраторов сами пишут статьи и публикуют их на своем сайте, но есть и такие на которых каждый зарегистрированный пользователь становится автором. Это означает, что любой может стать автором и опубликовать на сайте свою статью или новость. Но к сожалению в таком варианте как и в любом другом, где все могут что-то оставить на сайте, не исключен спам.

минимальное количество слов

В WordPress есть несколько групп, которые могут публиковать записи. Это конечно же - Администраторы, редакторы, потом авторы и участники. Участник не может опубликовать пост, без проверки, поэтому если он напишет меньше текста или не по делу, вы легко можете отклонить его запись. Что же касается остальных, то они могут без проблем опубликовывать что угодно.

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

Функция не большая и для того чтобы получить результат, не надо ничего сложного делать, а главное все без плагина. Просто сделайте следующий шаг.

Открываем файл пользовательских функций functions.php и просто добавляем в него следующий код.

function ogranichivaem_publikaciu($dannie) {
    $limit = 100;
    if ($dannie['post_type'] == 'post') :   
        $kontent = $dannie['post_content']; 
        if (str_word_count($kontent) < $limit) :
            $dannie['post_status'] = 'pending';
            add_filter('redirect_post_location', 'moi_post_redirect_filter', '99', 2);
        endif;
    endif;
    return $dannie;
}
add_filter('wp_insert_post_data', 'ogranichivaem_publikaciu', '99');
 
function moi_post_redirect_filter($location, $limit) {
    remove_filter('redirect_post_location', __FILTER__, '99');
    return add_query_arg('novoe_uvedomlenie', 1, $location);
}
 
// Регистрируем предупреждение автору:
function moi_post_uvedomlenie_adminu() {
    if (!isset($_GET['novoe_uvedomlenie'])) :
        return;
    endif;
    switch (absint($_GET['novoe_uvedomlenie'])) {
        case 1:
            $limit = $_GET['limit_slov'];
            $soobchenie = 'Перед публикацией ваша запись должна содержать достаточно слов, немение 100.';
            break;
        default:
            $soobchenie = 'неизвестная.';
    }
    print '<div id="notice" class="error"><p><b>Ошибка</b>: ' . $soobchenie . '</p></div>';
}
add_action('admin_notices', 'moi_post_uvedomlenie_adminu');

Данную функцию можно настроить указав минимальное количество слов для записи в 2 строке. Сейчас установлено 100. Также отредактировать сообщение, которое увидит автор, в случаи, если он все таки написал меньше слов, в 27 строке. Не забудьте в этой строке тоже указать количество слов, такое как и в 2 строке, чтобы автор знал, сколько ему надо написать.

После добавления функции, она начнет фильтровать посты с меньшим количеством слов, чем Вам нужно.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 2, в среднем: 5 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078