Открытие среды и все такое
И так, для начала нам надо придумать имя плагина, а для этого определимся что наш плагин будет делать. У меня плагин будет служить для смены цвета на странице сайта, соответственно я назову его color-editor.
Далее розданим PHP файл с таким же названием как и имя самого плагина. Имя файла плагина должно быть уникальным, поскольку все плагины WordPress находятся в одной и той же папке wp-content/plugins/. Если имя плагина будет слишком типичным, вы рискуете обнаружить еще один файл с таким именем, что, очевидно, станет проблемой.
Так же важно поддерживать ясную структуру папки плагина. Если вы используете стили, то хорошо было бы создать папку /css для хранения используемых стилей.
/color-editor (директория плагина) color-editor.php (основной php-файл плагина ) uninstall.php (файл отмены установок плагина) /includes (папка для включений PHP) /assets /js (папка для файлов JavaScript) /css (папка для файлов стилей) /images (папка для изображений плагина)
Если вы хотите разместить ваш плагин на http://wordpress.org/extend/plugins/, вам необходимо создать файл readme.txt в стандартном формате и включить его в свой плагин. Смотрите http://wordpress.org/extend/plugins/about/readme.txt для получения разъяснений по формату.
Стандартная информация о плагине
Начало вашего файла должно содержать стандартный информационный заголовок. Этот заголовок позволяет WordPress понять, что ваш плагин существует, добавить его в панель управления плагинами, где он может быть активирован, загрузить его и запустить его функции; без заголовка ваш плагин никогда не будет активирован и запущен. Вот формат заголовка:
<?php /* /* Plugin Name: Color Editor Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates Description: A brief description of the Plugin. Version: 1.0 Author: Kekc Author URI: http://URI_Of_The_Plugin_Author */ ?>
Минимальная информация, которая нужна WordPress, чтобы обнаружить ваш плагин — его название (Plugin Name). Остальная информация (если она есть) используется для создания таблицы плагинов на странице управления плагинами. Порядок строк неважен.
Пройдемся по каждому пунку немного подробнее.
Plugin Name: Название плагина
Plugin URI: ссылка на информацию о плагине
Description: Описание плагина.
Version: версия
Author: Автор
Author URI: Ссылка на автора
Лицензия
За стандартным заголовком обычно следует информация о лицензии на плагин. Большинство плагинов используют лицензию GPL или лицензию, совместимую с GPL. Для указания лицензии GPL добавьте следующие строки в файл вашего плагина:
<?php /* Copyright ГОД ИМЯ_АВТОРА_ПЛАГИНА (email: E-MAIL_АВТОРА) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ ?>
Программирование плагина
Теперь пришло время заставить ваш плагин что-то делать.
Зацепки (Hook) плагина
Итак, как же взаимодействуют компоненты системы плагин + ядро WordPress? Для того, чтобы плагины имели возможность влиять на работу ядра WordPress или на конечный результат его действий, была придумана система так называемых зацепок (часто их без перевода так и называют «хуками» от англ. hook — крючок, зацепка). Принцип ее действия состоит в том, что каждая более или менее важная элементарная функция в ядре WordPress перед тем как вернуть какой-то результат своей работы или совершить какое-то важное действие (например вывести содержимое записи на странице, или произвести запрос к базе данных) «пытается» исполнить дополнительные инструкции (строки кода), предназначенные именно для нее в файлах плагина. Такую попытку она делает с помощью зацепок, которые прописаны в теле этой функции. Вот пример вызова зацепок плагинов из ядра WordPress:
Если в плагине существует код, предназначенный изменить поведение одной из стандартных функций ядра, то он будет исполнен той функцией, для которой назначался. Если нет — функция ядра сработает как обычно.
Например, перед тем как WordPress добавляет заголовок к записи, он сначала проверяет, имеет ли какой-либо плагин зарегистрированные функции для зацепки под названием «the_title».
<?php //… add_filter( 'the_title', 'my_own_function_for_title' ); //Так выглядит регистрация в файле плагина новой функции my_own_function_for_title(); с дополнительным инструкциями для зацепки 'the_title'. //… ?>
Текст заголовка «пропускается» через каждую такую зарегистрированную функцию, и выводится конечный результат.
1
2
3
4
5
6
7
8
9
10
|
<?php
…
/* Так в плагине может выглядеть функция, изменяющая заголовки WordPress. В данном случае она заставляет выводить каждое слово заголовка с большой буквы.
*/
function my_own_function_for_title( $title ){
$title = ucwords($title);
return $title;
}
…
?>
|
Таким образом, если ваш плагин должен добавлять некую информацию к заголовку записи или изменять ее, в нем должна быть зарегистрирована зацепка-фильтр для «the_title» и в нем должна быть фукнция, которая делает все нужные изменения с заголовками.
Полный код плагина выглядит так
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php
/*
Plugin Name: Color Editor
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: 1.0
Author: Kekc
Author URI: http://URI_Of_The_Plugin_Author
*/
add_filter( ‘the_title’, ‘my_own_function_for_title’ );
function my_own_function_for_title( $title ){
$title = ucwords($title);
return $title;
}
|