Разработка plugin для WordPress

Материал из Newman's WiKi.

Перейти к: навигация, поиск

Разработка плагинов позволят добавлять свой функционал в Wordpress.

Содержание

Файлы и директории

В папке /wp-content/plugins находятся плагины. При этом основным файлов плагина является файл PHP. Он может либо находиться прямо в этой папке или же в отдельном подкаталоге. В этом же подкаталоге могут находиться и вспомогательные файлы. Название файла или подкаталога с плагином не является критичным. Все информация о плагине Wordpress берется из, так называемого "заголовка файла", в котором находиться описание plugin.

Описание plugin

Для описания плагина служит, специальным образом оформленный, комментарий в начале файла (заголовок). Например это может выглядить так:

/*
Plugin Name: Macro Link
Plugin URI: http://pws.ru/wordpress/macrolink
Description: This is plugin for use macros of links in WordPress posts.
Author: Alex Novikov
Version: 1.0
Author URI: http://pws.ru/
*/

Следует заметить что Author URI будет ссылкой под именем автора, а Plugin URI ссылкой под именем плагина на странице со списков доступных плагинов в контрольной панели Wordpress

Принцип работы

Основной принцип работы плагинов в Wordpress заключается в обработке событий (Action) и создании функций для фильтров (Filter). В общих чертах работа с событиями и фильтрами схожа. Разница только в том что для обработчиков событий существует еще понятие приоритета выполнения. И еще: если функции обработчики событий вызываются как правило без аргументов, то для функции фильтра есть входной параметр. Это собственно контент, который и надо "профильтровать".

Список существующих событий и поддерживаемых фильтров разнится от версии к версии и поэтому лучше смотреть их на офф. сайте. Соответствующие ссылки есть внизу этой статьи.

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

//set hook to admin menu
function macrolink_menu() {
	add_options_page('Macro Link Options', 'Macro Link', 8, __FILE__, 'macrolink_options');
}
add_action('admin_menu', 'macrolink_menu');

//show page with form
function macrolink_options() {
	echo '<p><input type="submit" value="Save" class="button"></p>';
}

Ссылки

Личные инструменты