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

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

Приклад
  • 2022-07-03
  • 4052 переглядів

    2 коментар

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

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

Большинство сайтов на 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
Читайте також
Опубликовано 2 комментария

Добавить комментарий

Чтобы оставить комментарий - заполните поля ниже. Ваш e-mail не будет опубликован. Все поля обязательны

Натисніть, щоб додати код в коментар. Далі додайте свій код всередину тегів <code> тут код </code>
Я ознайомлений(а) з політикою конфіденційності і даю згоду на обробку персональних даних*

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.