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

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

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

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

Большинство сайтов на 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 строке, чтобы автор знал, сколько ему надо написать.

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

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

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

Back to top