Flector

Simple Plugin Info

Simple Plugin Info

Вот такую табличку с актуальной информацией о плагине из репозитория я вывожу в конце каждой статьи о каком-либо плагине. Для ее вывода я раньше использовал свой собственный шорткод-обертку для плагина WP Plugin Info. Но, в конце концов, мне надоел такой "костыль" и я написал свой собственный шорткод вывода информации о плагине. Меня несколько раз спрашивали, как сделать подобную табличку с информацией о плагине, поэтому я оформил этот шорткод в маленький плагин, которым могу с вами поделиться.

Скачиваем плагин по ссылке в конце страницы и устанавливаем его:

1 Распаковываем архив.

2 Копируем папку simple-plugin-info в /wp-content/plugins/.

3 Заходим в админку сайта на вкладку "Плагины" и активируем плагин.

Сразу скажу - никаких настроек в плагине нет, он просто "обертка" для шорткода, который я использую на этом сайте. Для какой-либо тонкой настройки плагина под себя вам придется править его код.

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

Как пользоваться плагином? Очень просто, полный синтаксис шорткода такой:

[plugin name='slug' version='x.xx' date='dd.mm.yyyy']

Обязательный параметр тут "name", остальные можно не указывать. Name это на самом деле "ярлык" плагина в репозитории. Как его узнать? Просто откройте страницу плагина в репозитории, и вы увидите его в адресной строке:

Ярлык плагина в адресной строке

Будьте внимательны – ярлык (slug) плагина в репозитории может отличаться от названия папки плагина.

Таким образом, минимальный шорткод плагина выглядит так:

[plugin name='akismet']

Что выдаст вот такую табличку о плагине:

Табличка с информацией о плагине Akismet

Шорткод с указанием рассматриваемой версии задается так:

[plugin name='cool-image-share' version='2.00' date='09.12.2016']

И выведет он такую таблицу:

Табличка с указанием рассматриваемой версии

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

Разные рассматриваемая и текущая дата

Но использовать эти параметры шорткода вовсе не обязательно. Тем более, что в репозитории сменили отображение даты последнего обновления плагина (там теперь выводится что-то типа "4 weeks ago") и легко узнать точную дату проблематично (но ее можно увидеть в исходном коде страницы).

В случае если плагин был удален из репозитория или сам репозиторий не отвечает, будет выведена такая таблица:

Табличка с ошибкой

Вот, собственно, и все по функционалу плагина.

Теперь немного о внутренностях плагина. Плагин использует функцию wp_remote_post() для запроса информации о плагине. Это может немного смущать, так как в WordPress есть "родная" функция запроса информации о плагине plugins_api() и именно ее рекомендуют использовать для этих целей. Однако, тесты показали, что функция plugins_api() ровно в 2 раза тормознее функции wp_remote_post(). Почему? Я не знаю. Но тесты я проводил на разных сайтах и серверах, поэтому случайностей тут быть не может. Запрос информации о плагине с помощью wp_remote_post() занимает около 0.5 секунды, а с помощью plugins_api() больше секунды. Даже при использовании кэширования вариант с более быстрой функцией явно предпочтительнее.

Кстати, по поводу кэширования. Оно, естественно, в плагине сделано. Потому что увеличивать загрузку страницы при каждом ее открытии на 0.5-1 секунду было бы неразумно. То есть плагин запрашивает информацию о плагине из репозитория, сохраняет ее в базе данных и целые сутки больше не запрашивает ее снова. Да, актуальность информации может запаздывать на 24 часа, но лучше так, чем значительно увеличивать время загрузки страницы. Время жизни кэша, кстати, вы можете задать в плагине, исправив код:

52
set_transient('plugin_info-'. $a['name'], $temp, 24 * HOUR_IN_SECONDS);

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

Внешний вид таблички (цвета и прочее) вы можете задать путем редактирования файла simple-plugin-info.css в папке плагина. Я проверил вывод таблички плагина примерно в 10 разных темах – везде она выводится более-менее одинаково. Но, в случае необходимости – правьте файл стилей.

Код плагина я снабдил относительно подробными комментариями, чтобы вы могли в нем разобраться. Если вам необходимо добавить в табличку новые поля, то обязательно загляните в описание функции plugins_api(), чтобы узнать их названия. А потом, по примеру, добавляйте их в код шорткода. С любыми вопросами можете писать в комментарии – я вам обязательно помогу.

Simple Plugin Info
Автор плагина: Flector
Рассматриваемая версия: 1.00 от 08.01.2017
Текущая версия: нет информации
Совместимость с версией WordPress: 3.5 и выше
Скачать плагин версии 1.00 (всего скачиваний: неизвестно)

Понравился пост? Подпишись на обновления по Обновления блога по RSSRSS или Обновления блога на TwitterTwitter !

Комментарии (всего 2 комментария)

Написать комментарий

(обязательно)

(обязательно, не публикуется)

Для вставки кода используйте кнопку "Код", по умолчанию используется синтаксис подсветки языка "php", вы можете поменять его на любой другой поддерживаемый GeSHi язык, например "javascript", "css", "html4strict", "sql" и тд. Используйте предпросмотр!
 


Подписаться на уведомления без комментирования.