Типограф лайт данный плагин отвечает. Автоматические кликабельные ссылки в комментариях WordPress и плагин ВП Типограф Лайт

В чем суть — мне надоело, что в комментариях к посту ссылки, начинающиеся с http:// и www. автоматически становятся кликабельными и от них иногда что-нибудь да отрезается . Это, конечно, круто, но когда тебе надо показать кусок кода или что-то подобное, то возникает проблема, которая иногда не решается даже тегами И .

Решил загуглить «убираем автоматические ссылки из комментариев wordpress ». Нашел, казалось бы, простое решение:

Чтобы раз и навсегда отбить охоту у WordPress делать такую медвежью услугу, достаточно в файле functions.php шаблона прописать в пределах вот такую незамысловатую строку:

Remove_filter("comment_text", "make_clickable", 9);

И автоматических ссылок как не бывало. Enjoy!

Оказалось не все так просто, «гениальное решение» не помогло . Пришлось разбираться дальше.

Я решил сразу же пробежаться по списку установленных плагинов, ведь чаще всего из-за них и возникают разного рода проблемы. И я не ошибся, в описании плагина «ВП Типограф Лайт» была строчка «кликабельные ссылки в комментариях». Что ж, копаться в коде не впервой!

Нам понадобится один единственный файлик: /wp-content/plugins/wp-russian-typograph/wp-russian-typograph.php
Чтобы говорить об одном и том же, определим актуальную версию плагина на данный момент – 2.3.5
Все что нам надо сделать – закомментировать три строчки: 386, 387, 390. Вот так это в итоге будет выглядеть:

//кликабельные ссылки //$text=preg_replace("~(^|\s|-|:| |\()(http(s?)://|(www\.))((\S{25})(\S{5,})(\S{15})([^\)\];"\"!?]))~i", "\\1\\4\\6...\\8\\9", $text); //$text=preg_replace("~(^|\s|-|:|\(| |\xAB)(http(s?)://|(www\.))((\S+)([^\)\];"\"!?]))~i", "\\1\\4\\5", $text);//убираем / в конце ссылок без вложенности //$text = preg_replace("~(]*>[^\/]+)\/~", "$1", $text);

Проблема решена, можно радоваться, но это еще не все. Я бы хотел поговорить о плагине ВП Типограф Лайт.

Типограф Лайт для WordPress

Страница плагина на сайте разработчика находится здесь : http://iskariot.ru/wordpress/typo/ увы, сайт больше не существует:(

Краткое описание : Легкая версия типографа только с основной функциональностью (рекомендуется для большинства блогов) — обработка кавычек, тире, спецсимволов вне безопасных блоков (pre, code, samp, textarea, script), правка кавычек внутри code, кликабельные ссылки в комментариях. Также правится неправильное форматирование TinyMCE.
Облегченная версия не требует настроек, не сохраняет настройки в базе данных и поддерживает основной функционал, требующийся в обычном блоге. Работает с UTF-8.

Что именно плагин делает и как форматирует, вы можете прочитать по ссылке, которую я привел выше. Я лишь хочу добавить, что этот плагин реально крутой и полезный . Тексты постов на блоге будут выглядеть красиво, по всем правилам типографики, поверьте, ваши читатели это оценят.
Так что я категорически рекомендую установить данный плагин всем блогерам на WordPress.

Надеюсь, данный пост кому-нибудь да пригодится.

PS Как думаете, стоит ли мне замутить пост про самые необходимые и клевые плагины для WordPress? Таких постов, конечно, валом в интернетах, но там часто описывают ненужные и лишние плагины, а мой «джентльменский набор» особенный;)

Обрабатывать текст перед публикацией вручную - занятие не для слабонервных. Онлайновый типограф - тоже потеря времени. Поэтому самое простое решение - прикручивание к используемому движку автоматического типографа. Для WordPress уже есть вариант от rmcreative, в составе которого есть плагин, выполняющий эту рутинную работу за автора.

Сложность тут в том, что, во-первых, слепое переложение правил «бумажной» типографики на экран может не только не повысить читаемость, но и ухудшить ее. Даже самый умный скрипт не умнее редактора - об этом я говорил и в одной и прошлых заметок о расстановке переносов при использовании justify . Вторая же проблема в том, что применение слишком большого количества правил обработки текста ухудшают производительность операции и увеличивают объем исходного кода (ведь для тех же неразрывных пробелов надо использовать html-entity неразрывного пробела, а в больших конструкциях пользоваться даже не , который не валиден, а ).

На страничке скачивания плагина достаточно подробно описана функциональность (пусть там не все так круто, как у typograf.ru).

Основная функциональность . Теперь все тире между словами и в диалогах - настоящие тире, а не утлый дефис. У цифр, соответственно, - минус, который выровнен по высоте цифр. Вокруг английских слов - английские кавычки, вокруг русских - елочки, вложенные кавычки - лапки. Также, для экономии кода сокращаются пустые последовательности, и кое-чего по мелочи. В заголовках, кстати, точка в конце обрезается - приятная такая мелочь.

Вторая важная вещь в основном функционале - то, что все предыдущие действия не касаются блоков текста внутри , , , а также псевдотегов самого Вордпресса. Более того, внутри производится дополнительная обработка, замена угловых скобок на HTML-сущность, что позволяет легко вставлять код без потерь (и мучений) даже в режиме HTML. Также фиксится проблемы движка - например, с кавычками.

Остальные функции обработки - вставка спецсимволов (копирайты и пр.), неразрывные конструкции (запрет на перенос слов с дефисами, например) и исправления (ошибки в пунктуации, в основном) настраиваются раздельно для заголовков, основного текста и комментариев. Это сделано в первую очередь для того, чтобы избежать необоснованного количества операций над текстом.

Но не только - при применении все того же justify , разрывы получаются еще большими, чем есть. К тому же, не решена проблема с союзами, предлогами и короткими словами. В старом варианте применение этого правила приводило к слишком большим последовательностям неразрывных конструкций, так что сейчас союзы спокойно могут «повиснуть» на строке.

В общем, смело меняйте настройки по умолчанию.

Обработка «ё», акронимов, аббревиатур, списков - это тема других, отдельных плагинов, ВП Типограф такие задачи не решает.

Все остальные опции связаны с обработкой комментариев.

Помимо более правильной обработки абзацев, ссылки в комментариях теперь подсвечиваются, даже если нет вначале http://, а длинные - сокращаются, чтобы не рвать верстку.

Во-первых, можно оставить все, как есть. Тогда комментаторы будут продолжать не пользоваться тегами, пытаться вставить пример кода и удивляться, почему это он не отображается.

Во-вторых, можно включить аналог Markdown. Теперь любой может выделить слово **жирным**, __курсивом__ (а если, скажем, в CSS прописано.comment p em{color:#F00} , то __irony__).

Ну, а в-третьих, можно выбрать Да в опции Разрешить код , и тогда любой введенный тег будет обрабатываться, как в code (т.е. угловая скобка < будет заменяться на