Главная
Wordpress
Как установить минимальное количество слов для записи в WordPress без плагина
  • 27 Фев 2015г
  • 742
  • 2
  • Рубрика: Wordpress

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

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

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




Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)


Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(1 голос, в среднем: 5 из 5)

Опубликовано 2 комментария

  • tux
    Комментариев: 2

    Не работает: кричит-ругается, что слов меньше чем положено, но запись почему-то создается 🙁 (версия wordpress последняя)

    • Виталий
      Комментариев: 269

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

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

Заполните поля ниже. Ваш e-mail не будет опубликован. Обязательные поля помечены *

Уважаемые пользователи! При добавлении комментариев на сайт Вам следует соблюдать правила указанные под формой отправки комментариев.

Соблюдайте добавления комментариев

Это не спам *

Нажмите, чтобы добавить код в комментарий