Разработка plugin для WordPress
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2435
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2451
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2456
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2461
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2467
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2479
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2496
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2497
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2498
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2499
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2517
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2518
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2519
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2520
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2550
Материал из Newman's WiKi.
Версия 22:57, 28 декабря 2008 WikiSysop (Обсуждение | вклад) ← К предыдущему изменению |
Текущая версия WikiSysop (Обсуждение | вклад) (→Ссылки) |
||
Строка 1: | Строка 1: | ||
Разработка плагинов позволят добавлять свой функционал в [[Wordpress]]. | Разработка плагинов позволят добавлять свой функционал в [[Wordpress]]. | ||
+ | == Файлы и директории == | ||
+ | В папке '''/wp-content/plugins''' находятся плагины. При этом основным файлов плагина является файл PHP. Он может либо находиться прямо в этой папке или же в отдельном подкаталоге. В этом же подкаталоге могут находиться и вспомогательные файлы. Название файла или подкаталога с плагином не является критичным. Все информация о плагине [[Wordpress]] берется из, так называемого "заголовка файла", в котором находиться описание plugin. | ||
+ | |||
== Описание plugin == | == Описание plugin == | ||
+ | Для описания плагина служит, специальным образом оформленный, комментарий в начале файла (заголовок). Например это может выглядить так: | ||
+ | <pre> | ||
+ | /* | ||
+ | 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/ | ||
+ | */ | ||
+ | </pre> | ||
+ | Следует заметить что '''Author URI''' будет ссылкой под именем автора, а '''Plugin URI''' ссылкой под именем плагина на странице со списков доступных плагинов в контрольной панели [[Wordpress]] | ||
+ | == Принцип работы == | ||
+ | Основной принцип работы плагинов в [[Wordpress]] заключается в обработке событий (''Action'') и создании функций для фильтров (''Filter''). В общих чертах работа с событиями и фильтрами схожа. Разница только в том что для обработчиков событий существует еще понятие приоритета выполнения. И еще: если функции обработчики событий вызываются как правило без аргументов, то для функции фильтра есть входной параметр. Это собственно контент, который и надо "профильтровать". | ||
+ | |||
+ | Список существующих событий и поддерживаемых фильтров разнится от версии к версии и поэтому лучше смотреть их на офф. сайте. Соответствующие ссылки есть внизу этой статьи. | ||
+ | |||
+ | В качестве примера привожу код для добавления пункта в меню в контрольной панели и страницы открываемой по щелчку на этом меню. | ||
+ | <pre> | ||
+ | //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>'; | ||
+ | } | ||
+ | </pre> | ||
+ | == Ссылки == | ||
+ | * [http://codex.wordpress.org/Function_Reference Список всех функций] | ||
+ | * [http://codex.wordpress.org/Plugin_API Wordpress Plugin API] | ||
+ | * [http://codex.wordpress.org/Plugin_API/Action_Reference Actions] и [http://codex.wordpress.org/Plugin_API/Filter_Reference Filters] | ||
+ | [[Категория: Опыт]] | ||
[[Категория: Wordpress]] | [[Категория: Wordpress]] |
Текущая версия
Разработка плагинов позволят добавлять свой функционал в 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>'; }