• ДОБРО ПОЖАЛОВАТЬ В КЛУБ ПО WORDPRESS

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

    Присоединяйтесь к нам, вам обязательно понравится - Присоединится

Вопрос запретить публикацию из текстового поля при наличии определенных слов

timurche

НОВИЧОК

timurche

НОВИЧОК
Сообщения
1
На сайте есть сервис бесплатных объявлений о недвижимости, форма проста, реализовано вкратце так:
...
<label>Описание объявления</label>
<textarea name="content" class="" required></textarea>
<input type="submit" value="Разместить объявление" class="" />

Но, как и ожидалось, с небольшим ростом популярности сайта появляются дятлы, которые добавляют объявления о работе в своих сетевых маркетингах. Это реальный человек, капчу проходит и гадит.

Есть ли возможность запретить человеку нажать submit, если textarea содержит слова, например "работа, заработок, и т.д."? Матфильтр не подходит, т.к. он пропускает объявления замазав мат. А я хочу именно запретить постинг. Есть ли плагины или готовые решения для таких задач? Или хотя-бы направление раскопок укажите... Спасибо!
 

Wildcdu

ЭКСПЕРТ

Wildcdu

ЭКСПЕРТ
Сообщения
1,120
Сразу оговорюсь, чтоб не было потом мусора, данная информация несет в себе основную мысль, дать возможность найти решение, а не является безусловным источником готовых решений, и тем более не претендует на какую либо аксиомность и не погрешимость.

Встроенный фильтр проверки комментариев
WordPress имеет свою собственную систему проверки комментариев.
Фильтр pre_comment_approve может несколько облегчить предварительную модерацию.
Пример:

Код:
<?php
add_filter( 'pre_comment_approved', 'pre_comment_approved_example', 99, 2 );
function pre_comment_approved_example( $approved, $commentdata ) {
   return ( strlen( $commentdata['comment_author'] ) > 75 ) ? 'spam' : $approved;
}
?>
Это фильтр спама на основе длинны имени (для длинных имен блок), а если чуток доделать...

это удаляем большие БУКВЫ
Код:
<?php

add_filter( 'preprocess_comment', 'preprocess_comment_example' );

function preprocess_comment_example( $commentdata ) {
    if( $commentdata['comment_content'] == strtoupper( $commentdata['comment_content'] ))
        $commentdata['comment_content'] = strtolower( $commentdata['comment_content'] );
    return $commentdata;
}

?>
Предзаполненая форма
Код:
<?php

add_filter( 'the_editor_content', 'the_editor_content_example' );

function the_editor_content_example( $content ) {
    //Возвращает фильтрованное содержимое, если пусто
    if ( empty( $content ) ) {
        $template  = Не забудь ...' . "\n\n";
        $template .= '<ul><li> Проставить нужные теги,</li>
<li> Время публикации установи на 8:00 завтрашнего утра</li>
<li> Метки сделай подходящими для СЕО-</li>
<li> И не забудь удалить этот текст.</li></ul>' . "\n\n";
        $template .= 'Пока!';
        return $template;
    } else
        return $content;
}
?>
Убираем лишнее в публикации

Код:
<?php

add_filter( 'the_content', 'the_content_example' );

function the_content_example( $content ) {
    return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
?>
Ну и как прикол замена одного слова на другое
Код:
add_filter(  'gettext',  'wps_translate_words_array'  );
add_filter(  'ngettext',  'wps_translate_words_array'  );
function wps_translate_words_array( $translated ) {
     $words = array(
                        // 'word to translate' = > 'translation'
                        'Posts' => 'Article',
                        'Post' => 'Articles',
                        'Pages' => 'Stuffing',
                        'Media' => 'Upload Images',
                        'Links' => 'Blog Roll',
                    );
     $translated = str_ireplace(  array_keys($words),  $words,  $translated );
     return $translated;
}
На закуску страничка кодекса
Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:

Wildcdu

ЭКСПЕРТ

Wildcdu

ЭКСПЕРТ
Сообщения
1,120
кстати добавлю такое глупое решение. берем плагин антимат и чуток подправляем вместо слова цензура которым он заменяет не нужные слова можно добавить очень длинное слово или целую фразу которая просто уничтожит смысл поста. вот как то так
 

Wildcdu

ЭКСПЕРТ

Wildcdu

ЭКСПЕРТ
Сообщения
1,120
вот проверенный вариант с плагином антимат (попробовал на тестовой площадке)

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

Вложения

Последнее редактирование:

Топ поддержки


Сверху