[Plugins] Обзор плагинов — выпуск 1

На работе редкостная скукота, не смотря на то, что понедельник. Да и вообще я уже наметил увольняться, а то сидеть и тухнуть в бесперспективном месте — не для меня.

Этим постом думаю начать серию кратких обзоров новых плагинов. Постараюсь отбирать те, которые могут представлять интерес для конечного пользователя именно российского сегмента, так как не думаю, что "виджет показывающий что-то из вашего профиля в Facebook" будет особо актуален. Обзоры будут краткими, т.с. превьюшки со ссылками, и в большинстве своём "на себе" я плагины не буду тестировать, поэтому отзывы в комментариях приветствуются. А если будут какие-то проблемы с установкой/настройкой плагина, то пишите там же — если проблемка не тривиальная, то будем решать её отдельным постом с описанием и картинками.

Yank Widget (v.1.0)

Версии WordPress: с 2.5 по 2.6

Плагин добавляет виджет, позволяющий в качестве контента использовать текст с любой страницы (page) (обратите внимание, что это текст статических страниц, а не постов). Существует возможность скрывать виджет на определенных страницах или внутри категорий. Как сообщает автор, плагин может существенно повысить нагрузку на БД, если не пользоваться кеширующими плагинами.

Не сказать, чтобы мне этот плагин казался особенно полезным — всегда можно написать запрос или статически вбить информацию, но не все ловко обращаются с sql, поэтому как вариант вывода в сайдбаре дубля страницы "обо мне", "об авторе" или "о сайте" — вполне сойдёт. Плюс в том, что если вы вздумаете изменить текст на странице, то автоматически он поменяется и в остальных местах, что избавляет от головной боли.


TinyMCE Entities Patch (v.1.0)

Версии WordPress: все версии ветки 2.5.x

Это не столько плагин, сколько патч для визуального редактора. Причём довольно необходимый, если вы им конечно пользуетесь.

Если вы пишете посты в визуальном редакторе и вам требуется отобразить код html-спец.символов (например, &gt; — > ,&lt; — <, &quot; — "), то начинается целая борьба с редактором, так как он автоматически преобразует коды в сами символы.

Собственно плагин позволяет:

1. Вводить коды html-спец. символов (т.н. html-entities) в виз.редакторе, без боязни их преобразования после сохранения.

2. Сохранять "дополнительные" пробелы между словами/предложениями, а не преобразовывать их в единичный пробел.

Думаю, для пользователей виз.редактора, пишущих про html — это полезный патчик, а остальным можно его пропустить.

Важно! Если вы поставили себе WordPress 2.6, то там, в визуальном редакторе уже исправлена эта ошибка, поэтому не устанавливайте и/или отключите этот плагин. (Ещё один повод перейти на новую версию :D)


Context Ad Wrapper (v.0.2)

Версии WordPress: все выше 2.2.0

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

На данный момент плагин работает со следующими конторами:

  1. Google Adsense
  2. Amazon.com Context Links
  3. Kontera ContextLink
  4. MediaText

Жаль, что нет РСЯ и Бегуна, но я вообще не уверен, что там можно указывать контентные блоки, для более качественной отдачи объявлений.


EasyBan (v.1.2.3.1)

Версии WordPress: с 2.5 по 2.5.1

Позволяет забанить посетителя временно или навсегда по следующим параметрам: IP (отдельно или диапазон адресов), домену или реф.ссылке. 

image

Тут всё просто, но между тем интересна возможность блокировки по реф.ссылке, а то многие сео-спамеры любят приходить и "срать" по примерно таким запросам. Попробуйте и поделитесь впечатлениями.

До следующих выпусков. Удачи.

10 вещей, которые вам стоит знать о WordPress 2.5

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

Тем временем уже отгремели два релиз кандидата WordPress 2.5 и даже «зафиналили» этот чудо блог движок.
Скачать его можно:
а) оригинальную версию с офф. сайта
б) русскую официальную
в) версию от Кактуса, т.н. Lecactus Edition

Сразу скажу, что сам ещё не смотрел и руками не трогал, но почитать успел изрядно про новую версию. Ссылки на русскоязычные статьи по этой теме дам в конце, а пока что предлагаю ознакомиться с интересной заметкой Аарона Бразелла (вы уже могли читать у меня его пост «10 вещей, которые вам стоит знать о WordPress 2.3»), которая продолжает традиции постов «10 вещей, которые вам стоит знать о WordPress …(поставить новую версию))».


10 вещей, которые вам стоит знать о WordPress 2.5

WordPress собираются выпустить версию 2.5 (статья опубликована 18 марта, во время выхода первого релиз кандидата). Если вы пользуетесь услугами WordPress.com или заглядывали на демо сайт, то вы уже, наверное, знаете, что с этим релизом грядут большие изменения.

Кто-то спросит, «А куда подевался WordPress 2.4?» Ответом на вопрос будет — его просто пропустили. Да, всё верно, 120-дневный цикл релизов был нарушен, и теперь мы получим на выходе два релиза в одном. Повторюсь, количество изменений обширно и бесчисленно. Это громадный релиз.

Ну что же, посмотрим что там самого важного?

Новый интерфейс админ панели

WordPress 2.5 Admin Panel Interface

Безусловно, самые большие изменения в этом релизе коснулись переосмысления того, как пользователь WordPress решает свои административные задачи. Студия Happy Cog была нанята для проведения юзабилити тестов и исследований — с акцентом на исследовании юзабилити. Некоторые из нововведений админ панели настолько значительны, что я выделил их отдельными пунктами, потому что они достойны собственного описания и, вновь повторюсь, эти изменения огромны.

Вы сразу же обратите внимание, что админ панель WordPress теперь выполнена в светло-голубых, светло серых и оранжевых тонах. Мне нравится это цветовое решение, но многим, судя по отзывам, не очень. Если вы разработчик или разбираетесь в создании плагинов для WordPress, то вы можете подключить своё собственное css при помощи фильтров wp_admin_css и wp_admin_css_uri, а так же в новый WordPress уже встроены «Классическая» тёмно синяя тема оформление и «Fresh» стиль, который активирован по умолчанию.

Я же остановился на оформлении по умолчанию. Не так уж оно и плохо.

Расположение элементов меню

WordPress 2.5 Menu Layout
Одно из первых, бросающихся в глаза, изменений коснулось навигации по админке. Почему то в памяти всплыл Movable Type. Я понятия не имею, позаимствовали ли идею оттуда или просто глубокие исследования пользователей, проведенные Happy Cog, сказались на результате, но в любом случае… что-то точно сказалось.

В первую очередь, пользователь работает с админ панелью в одной из четырёх областей — написание постов, управление постами, управление комментариями и изменения в элементах оформления. Вы заметите, что эти пункты вынесены в основную навигацию в левой части экрана. (Обратите внимание, что пункт меню «Presentation»/»Внешний вид» был переименован в «Design» — что тоже является юзабилити решением. И это важно.) Мэтт писал об этом более подробно.

Остальные элементы прежнего основного меню — Плагины, Настройки и Пользователи — теперь отнесены к вторичной навигации в правой части экрана.

Под-навигация — немного странная. Так как первичные и новые вторичные элементы навигации являются частью одной и той же панели меню, все «подменю» появляются под первичной навигацией. Всё нормально, когда дело касается пунктов из первичной навигации, но для элементов вторичной навигации смотрится довольно неудобно, учитывая его расположение в противоположной части экрана. Я знаю, что эту проблему сейчас рассматривают, но что получится в результате — мне не известно.

И ещё, как небольшое дополнение, я думаю, авторам плагинов стоит переосмыслить свой выбор того, где размещать подстраницы настроек своих плагинов. Действительно ли их можно причислить к странице «Настройки»? Действительно ли они относятся к странице «Управление»? По моему мнению, настройки плагинов стоит вносить как подстраницы в меню «Плагины».

Управление виджетами

WordPress 2.5 Widget Handling
Другим МАССИВНЫМ сдвигом в философии стала страница Виджетов. Прежде вы могли перетащить (drag-n-drop) виджет в нужное место. Вы всё ещё можете перетаскивать виджеты в пределах сайдбара, тем не менее, этот релиз WordPress меньше привязан к различным java-script «украшательствам». Каждый виджет представлен в левом столбце, вы кликаете на ссылку «Add» и он переносится в сайдбар. Вместо того, чтобы просматривать все сайдбары сразу, пользователь выбирает сайдбар из выпадающего меню, если хочет перейти к настройке другого сайдбара.

По мне, так это только добавит ещё один пункт к общему списку переучиваний при работе с блогом, так что, в общем, мне не очень это понравилось, но похоже, что так оно надёжнее работает.

Усовершенствованная «Доска объявлений»

WordPress 2.5 DashBoard Overview
Второй вещью, которую вы, скорее всего, заметите сразу после входа в админку (первой была цветовая схема), будет новый интерфейс «Доски объявлений». Теперь она полностью модульная и хотя всё ещё нет «простого» способа добавить свой собственный модуль, всё же авторы плагинов могут создавать виджеты для «Доски объявлений». С такой позиции архитектура выглядит примитивно, но это позволит авторам плагинов добавлять функционал более простым способом и не чувствовать себя «хакерами».

Сводка по всем данным вашего WordPress располагается в виджете с заголовком «Right Now», информирующим вас о количестве постов, комментариев, черновиков, тэгах и категориях. Другие полезные виджеты можно настроить при помощи своих собственных RSS-лент.

Улучшения в визуальном редакторе

WordPress 2.5 Visual Editor Improvements
Визуальный редактор, давшнишяя заноза в заднице многих пользователей, был обновлен до поддержки TinyMCE 3. В него включили даже режим «Во весь экран» (Full Screen), для тех, кто не любит отвлекаться во время написания поста. Я не могу много поведать об остальных особенностях этого обновления, так как не пользуюсь визуальным редактором в WordPress, но мне рассказывали о громадных различиях по сравнению с предыдущей версией. Команда разработчиков TinyMCE совместно работали с командой WordPress над текущим релизом.

Flash загрузка мультимедиа

WordPress 2.5 Flash Uploader
Для тех из вас, кто в постах использует много изображений, стандартный загрузчик был полностью переделан. То есть, вы можете загрузить или вставить сразу несколько изображений за раз, при помощи основанного на Flash загрузчика. Для тех же, у кого не установлен Flash, сохранена возможность воспользоваться старым загрузчиком, т.ч. не стоит волноваться. Так же появилась новая ссылка «Add Media» в заголовке окна написания поста, которая и вызывает загрузчик. Для тех из вас, кто желает подискутировать, над философским решением включить элемент с закрытыми исходными кодами (Flash) в open-source проект и выпуск WordPress под GPL, — вперёд и с песней.

Автообновление плагинов

Ещё одна амбициозная фича, добавленная в WordPress, — новый механизм автообновлений. По умолчанию, он попытается обновить плагины, уже помещенные в репозиторий плагинов WordPress, перезаписав новые файлы поверх существующих. Как бы то ни было, при этом появляется дыра в безопасности, так как получается, что ваши плагины доступны для записи непонятно кому. Альтернативным вариантом можно считать обновление плагинов через FTP/FTP+SSL. Но стоит помнить, что ваши учётные данные и пароль от FTP будут сохранены в базе данных, а также важно не забывать, что FTP — не безопасный протокол. FTP/SSL намного безопаснее, но и у него есть огрехи. Но благодаря существованию хуков для работы с файловой системой, я пишу плагин для работы через Безопасный FTP (FTP через SSH). Пока что он ещё не готов, но надеюсь, что совсем скоро я его выпущу и сообщу вам.

Настраиваемый размер миниатюр

WordPress 2.5 Tumbnails Resize Option
С тех пор как впервые встроили загрузчик изображений, кажется где-то в WordPress 2.0, многие люди жаловались на невозможность модифицировать размер миниатюр. Если не ошибаюсь, то старые настройки были что-то вроде 100×100. В WordPress 2.5, миниатюризация стала намного более удобной. Вы не только можете установить глобальный размер миниатюр, но и также размер для «средних», аля Flickr, и добавилась опция для обрезания слишком больших изображений, вместо того, чтобы просто изменять размер. Думаю, что многим из вас эта функция понравится.

Управление тэгами

WordPress 2.5 Tag Managment
С введением в WordPress 2.3 тэгов, группа разработчиков не сильно торопилась добавлять какие-то элементы интерфейса для управления ими. Минималистическое поле ввода на странице создания поста позволяло просто вводить список тэгов через запятую без дополнительных возможностей манипуляций с ними. К счастью, в 2.5, было добавлено несколько элементов интерфейса, хотя функционал остался тот же. Работает, как и тэги во Flickr, где добавлять тэги можно, перечисляя их через запятую или при помощи мантры «введи, кликни, добавь».

Индикатор надёжности пароля

WordPress 2.5 PassWord Strength
Последняя крупная вещь (и поверьте мне, есть ещё тонна более мелких и неясных вещей) в списке вещей, которые вам стоит знать о WordPress 2.5, это индикатор надёжности пароля. Пароль должен быть минимум три символа или появится сообщение «Слишком короткий», и должен состоять из двух или трёх видов знаков- буквы, цифры или символы — или будет обозначен «Слишком слабым». Безопасность паролей — большая проблема для всех в IT сфере, но безопасность блога может быть улучшена самими блоггерами, подбором «сильных» паролей.

Бонусный пункт: Разумная работа с «Полной датой записи»

WordPress 2.5 TimeStamp Sanity
Благодаря Mark Jaquith (Пояснение: Марк — один из моих служащих в b5media, но также разработчик ядра WordPress), функционал «полной даты записи» (Timestamp) был полностью пересмотрен. По умолчанию новый пост вообще не отображает модуль «Полной даты записи». Вместо этого он немедленно публикуется, или вы можете кликнуть по соответствующей ссылке, если действительно планируете изменить дату публикации. Когда редактируете пост с уже существующей датой (т.е. опубликованный), то вы так же не увидите раздела «Изменить дату», который многие годы вызывал недоумение у пользователей. Если вы редактируете существующую дату, то подразумевается, что вы планируете изменить дату! Другими словами, WP больше не будет оскорблять интелект пользователей (не то чтобы он делал это прежде, но защита блоггера от самого себя немного раздражала).

Если вы планируете потестить, вы всегда можете взять последнюю доступную версию кода с http://svn.automattic.com/wordpress/trunk. Стандартное руководство по работе с не-стабильной версией: Поддержка отсутствует, у вас другой подход, используйте на свой страх и риск, не кормите тигров. Но если вы желаете помочь процессу разработки, то тестируйте И сообщайте о найденных багах. Ещё предстоит много-много чего оттестировать до появления релиза. Наслаждайтесь 🙂


От себя добавлю, что так как обзор делался на основе первого релиз кандидата, то и функции тут указаны не все, например забыта поддержка граватар и галерей, поэтому постараюсь сделать более глубокий обзор нововведений (скорее всего он будет интересен «ковыряющим» движок), а пока что можете полистать «чужие» заметки по теме:
«Как активировать глючащие плагины в WordPress 2.5»
«WordPress 2.5 против WordPress 2.3.x — сравнительный обзор»
Качественно переведенный WordPress 2.5 Lecactus Edition — советую!
Показательный опыт обновления до 2.5 — не всё так безоблачно.

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

Как сделать тему WordPress виджет совместимой за 3 шага

В комментариях к последней статье «Виджеты — это очень просто!» попросили рассказать, как же сделать тему виджет совместимой. Честно говоря, я думал, что на офф.сайте это описано, а как выяснилось написано то оно написано, да не совсем там.

В общем, отрыл я пошаговое описание того, как нужно «грамотно» виджетизировать свою тему, которое ниже предлагаю вам в своём переводе с небольшими корректировками и дополнениями.


Шаг 1. Редактируем functions.php

Сперва необходимо удостоверится в том, что в папке с вашей темой находится файл function.php, а если таковой отсутствует, то создайте его сами.
Следующим шагом нам необходимо определиться — как у нас формируется сайдбар. Откройте свой sidebar.php и попытайтесь вникнуть в код и понять, что используется для формирования сайдбара — списки (<ul>) или дивы (<div>).
Например, у Артема сайдбар стандартный, из списков и заголовков второго уровня, что видно по коду:

А вот у Максима напротив, сайдбар состоит из последовательных блоков div, обрамленных изображениями «скругленных углов», а уже внутри дива находится контент виджета. Кусок кода, чтобы было (возможно) проще понять, о чём я говорю:

Так вот — первый вариант, как я уже и писал, можно обозвать стандартным или скорее классическим, а следовательно и встраивание в сайдбар по «классической схеме» будет проходить максимально безболезненно.

Достаточно в functions.php добавить блок кода, чтобы в итоге получить сайдбар на основе списков с заголовками 2 уровня:

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

Если же, вы используете, какой-то более извращенный метод (ничего личного, Макс:-)), то код может принять устрашающий вид, аля:

Дам небольшие пояснения, строка, передаваемая в параметр ‘before_widget’ будет выводится как начало любого виджета, а ‘after_widget’ — конец. Т.е. тут мы задаём тэги обрамления виджета. ‘before_title’ и ‘after_title’ соответственно определяют обрамление заголовка виджета (это все те «Рубрики» и «Самое читаемое»). В итоге мы получим дивный сайдбар с заголовками 4 уровня.

Для особо замороченных существует возможность получить при выводе виджета его id (генерится из имени виджета) и класс (получается в процессе обработки виджета). Т.к. ‘before_widget’ пропускается через sprintf, то в любое место строки можно передать %1$s и %2$s, чтобы при выводе получить соответствующие параметры. Надеюсь «замороченные» поняли, о чём я.

Шаг 2. Проверяем сайдбар и добавляем на него виджеты

Чтобы понять работает наш сайдбар или нет, нужно добавить на него несколько виджетов.
Идём в админ панель, далее «Внешний вид > Виджеты» и лицезреем (или нет, если забыли сохранить и/или загрузить functions.php в свою тему) панель сайдбара, куда можно (и даже нужно) натаскать пару-тройку виджетов. И главное нажать «Сохранить», после чего перейти к третьему шагу.

Шаг 3. Добавление сайдбара в шаблон

Ну и наконец-то то, ради чего всё делалось — подключение сайдбара в шаблон.
Тут есть простой и очень простой способ. Оба заключаются в редактировании файла sidebar.php вашей темы.
Простой способ:
Вставить сразу после строки <div id=»sidebar»> следущий код

а перед последним </div> код — <?php endif; ?>
Очень простой способ заключается в том, чтобы понять для себя раз и навсегда, что никто уже не использует шаблоны без виджетов и, стерев предварительно ВЕСЬ код из sidebar.php, скопипастить туда:

Чем меньше кода в подключаемом файле, тем быстрее у нас всё работает (хотя на таком уровне это конечно «мёртвому припарки», но всё же).

Теперь заходим в свой блог и наблюдаем работающие виджеты.


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

И ещё, я думаю — писать пост про создание темы с несколькими виджетами или нет? Пригодится тебе такая статья, читатель, или нет?

Виджеты — это очень просто!

«Не знание технологий не освобождает от…», не, не то. «А я вот сделал, а оно не работает…».

К чему это я? Ах да, в последнее время ко мне несколько разных человек обратились примерно с одним и тем же вопросом:
«Почему, после того как я добавил в sidebar.php код кнопки/баннера/ссылки, ничего не изменилось и я их не вижу?!»
На что я сразу выдаю контр-вопрос (нет-нет, я не еврей):
«А вы используете в своей теме виджеты?!»

Просто не все осознают, что всё что находится ниже строки:
if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar() )
в sidebar.php будет показано ТОЛЬКО в том случае, если вы не включили ни одного виджета. В противном случае будут отображаться ваши настройки из «Внешний вид > Виджеты».

Обычно после того, как я это объясняю, следует вопрос — «Ну и как мне поместить свой код в сайдбар/виджет?!», да очень просто — если это обычный хтмл-код (а это в 90% случаев баннеры и стандартные ссылки/кнопки), то достаточно добавить стандартный текстовый виджет и поместить в него готовый код.

Но что делать, если виджет должен выводить результат выполнения какой-то функции? И ведь действительно, почти все «мощные» плагины, такие как ‘Popularity Contest‘ (русская версия), позволяют получать обработанную информацию из своих функций. Например, akpc_most_popular — самые популярные, akpc_most_popular_in_cat — самые популярные в какой-то категории и т.д.

Да, я знаю КАК можно сделать свой виджет, путём редактирования functions.php, но даже мне порой бывает лень это делать, а что говорить о людях, для которых внести изменения в файл темы (причём не просто копи-паст, а ещё и осмысленное редактирование) — это нечто равносильное тасканию пятидесяти килограммовых мешков?

Для таких страдальцев нашёлся чудо плагин Custom Function Widgets (скачать), авторства Kaspars Dambis из Латвии.

Как это работает.

  1. Скачиваете и устанавливаете как и любой другой плагин.
  2. После активации в меню «Внешний вид > Виджеты» появится новый раздел «Custom Function Widgets», где вы можете указать необходимое количество настраиваемых виджетов.
  3. Custom Function Widgets - admin panel - Screenshot

  4. Теперь перетащите один из «Custom Function» плагинов в свой сайдбар и нажмите кнопку настройки.
  5. Введите в поле Function name имя нужной функции (например, st_related_posts, чтобы вывести связанные посты, при помощи плагина Simple Tags) и жмём «сохранить».
  6. Вуаля, если всё сделали правильно, то можем полюбоваться на результат в сайдбаре блога.

Теперь объясню какие поля в настройках за что отвечают:
Widget title — заголовок виджета. Он будет показан при выводе (если вы специально не отключите, о чём ниже), а так же это название будет видно в панели управления виджетами.
Function name — имя функции. Указывается без кавычек и скобок.
Function variables — переменные, передаваемые в функцию. Если функция для работы требует параметры, то указывайте их тут. Важно сохранять последовательность переменных, а так же перечислять переменные через запятую, если их несколько.
HTML before и HTML after — хтмл код, который будет выводиться перед и после вашей функции. Обычно это обрамление тэгами списков, ну или возможно подключение какого-нибудь java-script.
Галочка Remove Widget title from output отключает вывод заголовка виджета в сайдбар, а Remove the default widget wrapper — отключит разрывы между виджетами.

В общем — пробуйте и пишите отзывы тут или сразу автору плагина, который очень оперативно ответил и исправил найденный мною баг. Ещё раз ссылка на скачку плагина.