Вещи, которые записываешь, запомнить гораздо легче. Именно поэтому новички говорят чаще, чем профи. Профессионалы же либо молчат, либо смеются, либо заняты делом.
Именно поэтому я решил написать эту статью. Так получилось, что мне понадобился свой плагин Wordpress. До того, как приступить к делу, я очень долго боялся, плакал и занимался прокрастинацией. В этом мне очень помогли длинные и слишком подробные статьи про написание плагинов. На самом деле всё оказалось совсем не страшно.
Как я теперь вижу, плагин для #WordPress можно написать минут за пять. И алгоритм этого написания укладывается ровно в два пункта:
1. Указываем, к чему хотим прицепиться
2. Пишем, что хотим делать с объектом или данными, к которыми прицепились.
$mycontent = str_replace(". ", ", хули. ", $mycontent);
return $mycontent;
}
?>
Уф, я даже сам не верю. Но я действительно только что набил за пять минут (даже меньше) рабочий плагин к 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, активировать и смотреть на результат. Всё.
Пример до:
Пример после:
PS: не тестируйте этот плагин на приличных сайтах.
PPS: при замене на русские буквы на сайтах с кодировкой UTF-8 и включенным сжатием GZIP страницы постов могут перестать отображаться из-за "неправильной компрессии". Это "лечится" отключением GZIP в настройках или написание более правильного плагина. Вообще, если столкнулись с таким сообщением: "Страница, которую вы пытаетесь просмотреть, не может быть показана, так как она использует неверную или неподдерживаемую форму компрессии" - то знайте, что проблема, скорее всего, именно в плагине и в настройках GZIP.
Рассмотрение вопроса совместимости кодировок выходит за рамки этой статьи, тем паче, что главную цель - записать, как пишется плагин - я-то выполнил!
PPPS:
Время написания статьи: 48 минут, включая правку и отправку, написание и тестирования плагина.
Время написания плагина: <5 минут
Время тестирования и поиска временного решения бага с кодировкой: минут 10.