» Как написать плагин для WordPress

Как написать плагин для WordPress

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

Именно поэтому я решил написать эту статью. Так получилось, что мне понадобился свой плагин Wordpress. До того, как приступить к делу, я очень долго боялся, плакал и занимался прокрастинацией. В этом мне очень помогли длинные и слишком подробные статьи про написание плагинов. На самом деле всё оказалось совсем не страшно.

Как я теперь вижу, плагин для #WordPress можно написать минут за пять. И алгоритм этого написания укладывается ровно в два пункта:
1. Указываем, к чему хотим прицепиться
2. Пишем, что хотим делать с объектом или данными, к которыми прицепились.

Вот как это выглядит в php:

Copy Source | Copy HTML

  1. <?php
  2. //1.
  3. add_filter (‘the_content’, ‘MyFunc’);
  4. //2
  5. function MyFunc($content){
  6. $mycontent = str_replace(“, ”, “, епта, ”, $content);
  7. $mycontent = str_replace(“. ”, “, хули. ”, $mycontent);
  8. return $mycontent;
  9. }
  10. ?>

Уф, я даже сам не верю. Но я действительно только что набил за пять минут (даже меньше) рабочий плагин к WordPress. Что он делает, можно догадать по названиям переменных. Ладно не буду томить, скажу прямо: он обрабатывает контент ПЕРЕД выдачей поста пользователю, подменяя запятые и точки на запятые и точки с полуматершиной.

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

Первым пунктом здесь работает функция add_filter, в которой первый аргумент – это название объекта или данных, к которым цепляем свою функцию, второй аргумент – название своей функцией. Оба названия – в кавычках.

Есть ещё функция add_action. Она отличается от add_filter тем, что тот работает как фильтр, а add_action позволяет просто запускать любой скрипт в определённый момент.

Синтаксис у обоих функций одинаковый. Что они позволяют цеплять, можно смотреть в Filter_Reference (http://codex.wordpress.org/Plugin_API/Filter_Reference) и Action_Reference (http://codex.wordpress.org/Plugin_API/Action_Reference) соответственно.

Для того, чтобы соответствовать стандартам WordPress, в начале кода надо дописать комментарий с описанием плагина:

/*
Plugin Name: RuMate
Plugin URI: http://www.yoursite.org/
Description: Insert russian dirty language phrases in every posts
Version: 0.2
Author: Kvisaz
Author URI: http://kvisaz.ru
*/

После этого плагин можно копировать в папку plugins, активировать и смотреть на результат. Всё.

Пример до:
Как написать плагин для WordPress

Пример после:
dirty-russian-phrases-screen.png

PS: не тестируйте этот плагин на приличных сайтах.

PPS: при замене на русские буквы на сайтах с кодировкой UTF-8 и включенным сжатием GZIP страницы постов могут перестать отображаться из-за “неправильной компрессии”. Это “лечится” отключением GZIP в настройках или написание более правильного плагина. Вообще, если столкнулись с таким сообщением: “Страница, которую вы пытаетесь просмотреть, не может быть показана, так как она использует неверную или неподдерживаемую форму компрессии” - то знайте, что проблема, скорее всего, именно в плагине и в настройках GZIP.

Рассмотрение вопроса совместимости кодировок выходит за рамки этой статьи, тем паче, что главную цель - записать, как пишется плагин - я-то выполнил!

PPPS:
Время написания статьи: 48 минут, включая правку и отправку, написание и тестирования плагина.

Время написания плагина: <5 минут
Время тестирования и поиска временного решения бага с кодировкой: минут 10.


One Response to “Как написать плагин для WordPress”

  1. dima_psyho Says:

    Ай, молодец! Пытаюсь свой плагин сделать, почерпнул у тебя хорошие идеи для понимания сути происходящего с плагинами в wordpress.

Leave a Reply




#hello#