Вставляем изображения в комментарии wordpress

Озаботился я сегодня проблемой вставки изображений в комментарии. То есть, стояла задача: дать комментаторам возможность вставлять свои изображения в комментарии. На самом деле, для этих целей нашелся уже готовый плагин (ну как за это не любить вордпресс?) под названием Comment Image, он делает именно то, что нужно! Более того, он еще автоматически создает миниатюры и автоматически вставляет их в тело комментария со ссылкой на оригинал. Настроек у скрипта минимум:

Страница настроек плагина

Image selection field – это метод вставки поля для загрузки изображения в форму.

  1. Inject via WordPress hook – вставит это поле автоматически, используя средства вордпресса. В большинстве случаев сработает, но если шаблон делался через заднее место, то ничего не отобразится
  2. Inject via Javascript – поле вставится через яваскрипт. Сработает обязательно, если у пользователя в браузере разрешены эти самые скрипты. В принципе, разрешены они сейчас у всех.
  3. Do not inject, manually added – это если вы сами захотите вставить поле в шаблон. Ручками =)

В последнем случае вам нужно будет отредактировать файл comment.php в вашем шаблоне, найти там форму отправки комментария и вставить код, вроде этого:


Не забыть сохранить его на сервере в кодировке UTF-8 без BOM.

Image field label – это текст рядом с полем загрузки.

Thumbnail width – это ширина создаваемой плагином миниатюры. Кстати, все миниатюры сохраняются в автоматически созданную папу /wp-content/comment-image/. Плюс этого в том, что все создается и сохраняется автоматически. Минус в том, что многие выносят папку uploads из папки wp-content, чтобы разделить пользовательское содержимое от программной части. Мелочь, думаю исправит автор в следующий релиз.

Вот как все выглядит в итоге:

Комментарий с загруженным рисунком

Казалось бы, все готово, можно выпускать новую фичу на сайт? А нифига! Картинка в коммент загружается, ссылка с миниатюры на оригинал стоит, но вот мой любимый плагин lightbox 2 не хочет эти картинки делать всплывающими, при клике тупо загружается оригинал в браузере =(

В принципе, причина нашлась быстро. Лайтбокс обрабатывает только текст статьи и ее анонс, а тексты комментариев не умеет (ну кто ж мог подумать, что кто-то научит вордпресс вставлять изображения и в комментарии?). Думаю, большинство подобных лайтбоксу плагинов этого не умеют делать, я не стал перебирать их, и буду вам признателен, если вы отпишитесь, с каким плагином у вас заработало.

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

Открываете основной файл плагина, обычно он лежит в папке /wp-content/plugins/плагин/плагин.php и ищите там строку:

add_filter('the_content'

Именно такую, так как продолжение ее может отличаться в зависимости от плагина. Для Lightbox 2 она выглядит так:

add_filter('the_content', 'autoexpand_rel_wlightbox', 99);

Нам нужно добавить точно такую же строку после нее, только the_content поменять на comment_text, сохранить файл и залить его назад на сервер. Все =) Теперь изображения из комментариев тоже всплывающие.

Если вы тоже пользуетесь плагином Lightbox 2, то можете просто скачать исправленную версию lightbox-2.

Удачного дня =)