Intereting Posts
Как вернуть количество пользовательских сообщений типа post с определенным значением настраиваемого поля через $ wpdb? Загрузить изображение в интерфейсе> Создать направление и / или переименовать имя файла? Имя Ввод от виджета отображает имя боковой панели вместо сохраненных данных Показывать объявления на почте в определенной категории Удалите «сообщения» от администратора, но покажите пользовательский пост Почему используется буферизация вывода? Как можно преобразовать пользовательский тип сообщения в формат сообщения? Защита файлов и каталогов WordPress Получить URL-адрес избранного изображения После wp_insert_post () почему черновики возвращаются как часть wp_query? Создание $ wp_query-> current_post работает глобально? Добавить возможность роли «Редактор», чтобы иметь возможность просматривать все вложения пользователей Использовать загрузку мультимедиа в пользовательский виджет в wordpress 3.5 Сделать липкий пост при сохранении Получение ссылки the_excerpt на дочерние страницы

Как удалить комментаторов возможность добавлять гиперссылки к комментариям?

Я хотел бы иметь возможность отфильтровывать способность комментаторов добавлять гиперссылки в текст комментария.

Я удалил поле «веб-сайты» из микса, чтобы уменьшить количество спама (см. « Удаление поля« Веб-сайт »из комментариев и ответов? »), Что очень помогло.

По умолчанию они могут использовать тег '<a'>, чтобы сделать это в тексте поля комментария, что позволяет спамерам внедрять гиперссылки на свои сайты.

Есть ли способ отфильтровать эту возможность в редакторе wysiwyg для полей комментариев?

WP запускает так много предустановленных фильтров на этом материале, что легко потеряться.

Вот что я закончил:

remove_filter('comment_text', 'make_clickable', 9); add_filter('pre_comment_content', 'strip_comment_links'); function strip_comment_links($content) { global $allowedtags; $tags = $allowedtags; unset($tags['a']); $content = addslashes(wp_kses(stripslashes($content), $tags)); return $content; } 

Это очищает четко определенные ссылки и удаляет фильтр, который превращает простые текстовые ссылки в правильно помеченные.

Другое решение –

Функция, которая удалит все <a>...</a> из текста (возможно, лучше использовать strip_tags вместо regex здесь):

  function strip_links($content){ return preg_replace('/<a[^>]*>(.*)<\/a>/iU','', $content); } 

Удалите ссылки из всех новых комментариев навсегда , прежде чем они будут введены в db:

  add_filter('preprocess_comment', 'new_comment_strip_links'); function new_comment_strip_links($commentdata){ $commentdata['comment_content'] = strip_links($commentdata['comment_content']); return $commentdata; } 

Или удалите ссылки, прежде чем выводить их на экран (ваша тема должна запускать фильтр «comment_text» где-то в файле шаблона):

  add_filter('comment_text', 'display_comment_strip_links'); function display_comment_strip_links($content){ return strip_links($content); }