Intereting Posts
Перезагрузка страницы перед завершением запроса AJAX Показывать приватные страницы публично, когда вы вошли в систему как администратор? Как сделать archive.php только для одной категории? Если Else Gravatar Author Picture Создание и сохранение нескольких мета-боксов do_shortcode () не вернет PHP-массив Что такое использование to_ping и pinged column? Что действительно фильтрует файл fililtered_html и filterfiltered_upload? WordPress single.php различные проекты / сообщения компоновки Должен ли я использовать «Категории» или «Страницы» для статического сайта WordPress (сайт без блога)? Каков наилучший подход для показа сообщений в порядке A-> Z? Вставить IPB форумы на WordPress страницу Плагин Multiple Post Thumbnails – нужна помощь с кодом Страница настроек плагинов не сохраняется – один массив параметров с дополнительным массивом Изменение кнопок действий для пользовательских типов сообщений

Количество внешних ссылок в комментариях – Вариант модерации

Я просто столкнулся с проблемой, чтобы правильно использовать количество внешних (что означает отсутствие относительных или абсолютных ссылок на мой собственный блог) на моем блоге для комментария .

Он помечен. Держите комментарий в очереди, если он содержит [ваш номер здесь] или больше ссылок. (Общая характеристика спама комментариев – это большое количество гиперссылок.) В Настройках -> Обсуждение в WordPress Back-end. Скриншот:

alt text

Я знаю, что в настоящее время он считает все ссылки inkl. ссылки на блог и другие комментарии (сообщается здесь: # 14681 ), но я не могу себе представить, что уже нет плагина или взлома, который правильно корректирует счет только для внешних ссылок.

Поэтому мой вопрос: есть ли плагин / хак, который заставляет WordPress правильно подсчитывать только внешние ссылки в комментариях для его параметров модерации?

Solutions Collecting From Web of "Количество внешних ссылок в комментариях – Вариант модерации"

Ха-ха, я действительно понял способ сделать это. В качестве плагина это должно работать.

class JPB_CommentCounter { var $count = 0; function __construct(){ add_filter( 'pre_comment_content', array( $this, 'content' ), 100 ); add_filter( 'comment_max_links_url', array( $this, 'counter' ) ); } function JPB_CommentCounter(){ $this->__construct(); } function counter( $num, $url ){ if($this->count < 1) return $num; elseif( $this->count > $num ) return 0; else return $num - $this->count; } function content( $content ){ $homeurl = preg_quote( home_url() ); if( preg_match_all( '@<a [^>]*href=[\'|"](/|'.$homeurl.')@i', $content, $matches ) ) $this->count = count($matches[0]); return $content; } } $JPBCC = new JPB_CommentCounter(); 

Я должен добавить, что я никоим образом не проверял это. Но это должно теоретически работать.

Теперь я написал полный плагин для этого, который предлагает базовый интерфейс подсчета ссылок для добавления комментариев в wordpress 3.0. В дополнение к тому, что предложил Джон, я сделал некоторые изменения / дополнения, основанные на отслеживании крючков, вызванных добавлением комментария, поскольку я хотел, чтобы это выполнялось только при добавлении нового комментария.

Поэтому я выбрал comment_text вместо pre_comment_content . Остальное в основном одно и то же, но некоторые проверки здравомыслия были добавлены, так что он только запускается один раз и добавляет только новый комментарий. Дополнительная (но в настоящее время нереализованная) проверка должна состоять в том, чтобы включить ее только после того, как опция comment_max_links была прочитана get_option() ( pre_option_comment_max_links -hook), но на момент, когда это проходило тестирование, я пока этого не делал.

Исходный код можно просмотреть онлайн в trac .

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