Плагин api. WordPress REST API — для чего и что это такое? Определение термина «Settings API»


  1. Полное руководство по настройке WordPress API, часть 1: введение

Сейчас самое время становиться профессиональным разработчиком под платформу WordPress. Будь то разработка по заказу клиента или создание тем и плагинов, сегодня есть спрос на все, что касается данной тематики.

WordPress имеет отлично написанную документацию по API для разработчиков вне зависимости от уровня их подготовки. Но это не отменяет необходимость накопления практического опыта в сфере разработки под данную CMS.

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

Множество исходных кодов тем и плагинов показывают, что разработчики продолжают делать то, что работает, однако оно сделано далеко не самым эффективным образом. Это особенно актуально для опций тем, страниц меню, механизмов валидации и тому подобного.

И мы хотим это остановить.

В данной серии статей, мы собираемся глубоко заглянуть в сердце WordPress Settings API . Мы разберемся, в чем состоит проблематика вопроса и почему это важно, а также научимся правильно использовать данный API.

Наша основная цель состоит в том, чтобы научиться грамотно настраивать Settings API (Программный интерфейс настроек, далее Settings API) вне зависимости от уровня вашей подготовки. К концу серии, вы получите глубокое, целостное понимание и разберете практические примеры того, как на практике правильно использовать этот API.

Чтобы успешно пройти все этапы, нам нужно начать с абсолютного нуля. До написания какого-либо кода и разбора примеров, нам необходимо познакомиться с Settings API – узнать что это, и для чего предназначено.

Определение термина «Settings API»

По своей сути, Settings API это набор функций, предоставляемый WordPress, который упрощает процесс создания меню, страниц настроек, а также сохранения, валидации и извлечения введенных пользователем данных.

Звучит просто, не так ли?

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

Почему следует использовать Settings API?

После того, как мы выяснили, что такое Settings API, давайте посмотрим, почему же мы собираемся его использовать вместо собственноручно написанных процедур обработки пользовательского ввода, сериализации (процесса превращения какой-либо структуры данных в последовательность битов) и валидации.

Взаимодействие с ядром WordPress

Settings API разработан создателями платформы WordPress, чтобы упростить создание расширений. Поэтому, вполне логично использовать функции, предоставляемые этим API.

Конечно, можно обойти Settings API и, методом грубой силы, реализовать собственный функционал, и никто не сможет этому помешать, однако это требует лишней работы, и чревато несоблюдением рекомендаций команды разработчиков ядра WordPress, что в конечном итоге может привести к ошибкам в панели управления.

Использование инструмента, созданного разработчиками для разработчиков, гарантирует, что мы будем взаимодействовать с ядром правильным путем.

Бесплатные стандартные возможности

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

Когда вы начинаете создавать свои интерфейсы по тем же принципам, которые используются в WordPress и будете использовать в своей работе Settings API, ваши продукты будут получаться тесно интегрированными с CMS.

Это означает, что когда пользователи будут работать с вашими творениями, то почувствуют себя в своей тарелке – им все будет понятно. У них будет возникать ощущение, что они изменяют системное дополнение, созданное разработчиками WordPress.

По правде говоря, использование «родных» стилей WordPress не касается напрямую Settings API и относится немного к другой теме, но такой аспект Settings API, как создание страниц меню, предполагает использование нативных стилей WordPress.

Разве нет смысла в том, чтобы придерживаться единого стиля?

Более безопасно, более устойчиво

Используя преимущества встроенных в WordPress функций, вы можете быть уверены, что процедуры сохранения, извлечения и валидации будут проходить без проблем. Settings API предоставляет множество функций, использование которых безопасно для функционирования ядра.

В конце концов, Settings API подчиняется тем же правилам и принципам, что и WordPress API. Также, при обновлении CMS, функции Settings API также будут устаревать. Вам нужно будет какое-то время, чтобы обновить ваш проект ДО того, как несовместимость скажется на его работе.

Что дальше?

Теперь, вы должны иметь общее представление том, что такое Settings API и почему стоит использовать его при создании тем и плагинов.

By Yandex.
It"s a web service, so you don"t need to add that.

Server owners need a special key to enable this plugin.
Login to the Yandex website and then obtain this key , then put it in the API"s config.
Please note that the free key supports "only" 10,000,000 characters every month, but you can create how many keys you want.

These are the avaible languages:

SpoilerTarget">Spoiler

AZERBAIJAN
ALBANIAN
ENGLISH
ARABIC
AFRIKAANS
BASQUE
BELARUSIAN
BULGARIAN
BOSNIAN
WELSH
HUNGARIAN
VIETNAMESE
HAITIAN
GALICIAN
DUTCH
GREEK
GEORGIAN
DANISH
INDONESIAN
IRISH
ITALIAN
ICELANDIC
SPANISH
KANNADA
CHINESE
KOREAN
LATIN
LITHUANIAN
MACEDONIAN
MONGOLIAN
GERMAN
NEPALI
NORWEGIAN
PERSIAN
POLISH
PORTUGUESE
ROMANIAN
RUSSIAN
SERBIAN
SLOVAKIAN
SLOVENIAN
SUNDANESE
TURKISH
UZBEK
UKRAINIAN
FINNISH
FRENCH
HINDI
CROATIAN
CZECH
SWEDISH
SCOTTISH
ESTONIAN
JAPANESE

When you join the server, your language is the server language.
To change it, just type /lang (permission: translator.lang ) and select your language from the menu.

If you don"t know how to add dependencies, read here.

Developer
Be sure you are using Java >= 8.
Add the JAR to your build path. Then set the "Manual Manifest" setting and create your MANIFEST.MF to the project. Write:

Main-Class: your.package.Class
Class-Path: ..\lib\Translator.jar

Server owners
Be sure you are using Java >= 8.
Create a folder named lib in the main server root, and put here the JAR.
Also, you need to put it in your plugins folder.

//Sending a message translated automatically to the player language
p.sendMessage("§a" + Translator.translate("Hello!", p));

//Sending a message translated manually
p.sendMessage("§a" + Translator.translate("Hello!", Language.ENGLISH, Language.ITALIAN));

//Getting the server language
Language serverLang = Translator.getServerLanguge();

//Getting player"s language
Language playerLang = Translator.getPlayerLanguage(p);

  • If you reload the API while a plugin that uses it is enabled, it will crash. To fix manually, unload the plugin, reload the API and load the plugin
  • Color codes are not supported. To use them see the examples above
  • Little lag (the API needs to translate the original text and receive JSON)

If you have any problem, write a post in the discussion or contact me via private messages. I will not reply to bug reports on the reviews section.

Currently there are not plugins that are using this API. If you are using it, tell me it and I will add it here

Recent Reviews

  1. Version: 1.0

    Grande frate! Ho letto Powered by Gamehosting, quindi penso tu sia italiano? se si: sai perché da questo errore all" avvio?

    P.s (ho letto impossibile trovare il percorso specificato, ma la cartella ci sta)

    : java.io.IOException: Impossibile trovare il percorso specificato
    : at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    : at java.io.File.createNewFile(Unknown Source)
    : at eu.iamgio.translator.UsersFileLoader.loadRegisterFile(UsersFileLoader.java:21)
    : at eu.iamgio.translator.Translator.onEnable(Translator.java:35)
    : at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
    : at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
    : at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
    : at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)
    : at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)
    : at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414)
    : at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378)
    : at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333)
    : at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263)
    : at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525)
    : at java.lang.Thread.run(Unknown Source)

Плагин представляет собой динамически загружаемую библиотеку (DLL). После установки программы все плагины, входящие в дистрибутив, помещаются в каталог c:\Program Files (x86)\Common Files\Soft Gold\Inventory 14\Plugins\... Расширение *.abl необходимо для автоматической загрузки плагина из указанного каталога при запуске приложения. Плагин также можно загрузить из любого другого места на диске, указав в настройках путь поиска.

Инициализация API плагина

{ Delphi VCL Extensions }

{ Plugin interface for ABViewer/Inventory }

{ Copyright (c) 2002-2010 SoftGold software company }

{************************************************************}

unit sgPluginItem;

interface

implementation

XMLDocRef: IXMLDocument = nil;

ClientRef: IXMLNode = nil;

P: Pointer = nil;

PluginsHostWnd: HWND = 0;

PluginsHostWndName: string = "";

XMLAtomString: string = "";

procedure InitializeDoc;

begin

// получение уникального имени класса окна с параметрами

PluginsHostWndName:= Format("TsgPluginsHost:%.8X:%.8X", );

// нахождение непосредственно окна

PluginsHostWnd:= FindWindow(PChar(PluginsHostWndName), nil);

If PluginsHostWnd <> 0 then

Begin

// получение строки атома для получения параметра xml документа

XMLAtomString:= Format("XMLOfs%.8X%.8X",

XMLDocRef:= IXMLDocument(GetProp(PluginsHostWnd, PChar(XMLAtomString)));

If Assigned(XMLDocRef) then

Begin

// добавление элемента в список

ClientRef:= XMLDocRef.DocumentElement.ChildNodes.ChildNodes.AddChild(sClient);

// инициализация адреса функции Invoke

ClientRef.ChildValues["Invoke"] := IntToId(Integer(@Invoke)); // шестнадцатиричное $XXXXXXXX

End;

End;

end;

initialization

CoInitialize(P);

InitializeDoc;

Настройка и запуск демонстрационной версии плагина

Демонстрационная версия плагина настраивается автоматически при установке программы и подключается сразу после запуска Inventory. В состав пакета входит исходный текст компонента (имя проекта sgPlugin.dpk) и демонстрационная версия плагина (имя проекта plug1.dpr ).

Порядок запуска плагина из режима отладки:

▪ Открыть C:\Users\USER_NAME\Documents\Inventory 14\Plugins\Source\Delphi\Demos\Plug1\plug1.dpr

▪ Установить в опциях проекта:

Search Path : «..\..\Components\PlugItem»;

Output derectory , например: «c:\Program Files\Common Files\Soft Gold\Inventory 14\Plugins»;

Host application , на вновь установленное приложение, например: «c:\Program Files\Soft Gold\Inventory 14\Inventory 14.exe».

▪ Запустить на выполнение.

Для использования компонента в designtime необходимо открыть, перебилдить и инсталировать C:\Users\USER_NAME\Documents\Inventory 14\Plugins\Source\Delphi\Components\PlugItem\sgPlugin.dpk . После инсталяции компонента, в палитре компонентов Delphi, на закладке Soft Gold появится компонент TsgPluginItem, который можно использовать в designtime, т.е. помещать на форму.

Сегодня мы поговорим о WordPress REST API (некоторые называют его JSON REST API), грядущем дополнении к ядру WordPress, которое сейчас доступно в виде плагина и изначально появилось в версии 4.1. Сейчас же нас ждет двухступенчатая интеграция в версиях 4.4 и 4.5. Если разработчики очень восторженно относятся к появлению этой новой функции, то среднестатистический пользователь WordPress может не понять всего этого восторга, хотя появление данной функции можно назвать знаковой вехой в истории WordPress. Давайте же узнаем, что такое WordPress REST API, и что его появление означает для будущего WordPress, а также, почему это пишется заглавными буквами.

Что такое API?

Давайте начнем с базовых вещей и терминологии, так как название JSON REST API полностью составлено из акронимов. Первые три буквы “API” – это Application Programming Interface (интерфейс программирования приложений).

Для чего нужен API?

Базово API нужен для соединения разных элементов программного обеспечения, и вы можете воспринимать его, как USB-порт.

USB-порты используются для связи различных типов девайсов с вашим компьютером. Это могут быть принтеры, элементы управления компьютером, портативные жесткие диски, телефоны и т.д. Через данный порт компьютер и девайс могут взаимодействовать друг с другом, обмениваясь информацией. API – это что-то похожее, только он связывает не девайсы, а программы. Таким образом, программы могут обмениваться данными в строго оговоренных рамках, взаимодействуя друг с другом. Вы постоянно используете API, даже не замечая этого. Например, если вы используете сторонние программы, чтоб воспользоваться своим аккаунтом в Twitter, то это действие выполняется посредством Twitter API. Благодаря API-технологии, я могу находиться в Twitter каждый день, даже не заходя на Twitter-сайт.

API также необходим, когда вы используете сервисы email-маркетинга, типа MailChimp, на своем WordPress-сайте. Если говорить коротко, то интерфейс программирования приложений позволяет разработчикам использовать функции и данные других веб-приложений или сервисов для своего собственного программного обеспечения в совершенно безопасном русле.

Что значит REST и JSON?

REST — это сокращение от английского Representational State Transfer (передача состояния представления). REST описывает определенную архитектуру API, разработанную таким образом, чтоб он был легковесным, дружественным к пользователю и подходящим для широкого спектра сервисов. Google, Facebook и Twitter используют REST-стиль для многих своих API, по той простой причине, что REST создан на основе HTTP – протокола, который повсеместно используется в сети, вместе со своим более безопасным кузеном HTTPS. Благодаря своей высокой совместимости с современными технологиями, API, созданные на базе REST, набирают все большую популярность в сети, и не только в случае WordPress. Практически любая программа, которая имеет доступ в интернет, может использовать этот тип API. Похоже, это несет большие возможности для взаимодействия программ, не так ли?

JSON – это текстовый формат обмена данными, основанный на JavaScript. Особенность JSON заключается в том, что это формат, дружественный и для человека, и для машины. Разработчики могут писать и читать на нем, как на обычном языке программирования, а компьютеры могут его легко парсить и генерировать. Как бы то ни было, самое главное его преимущество заключается в том, что основные языки программирования уже имеют кодификаторы и декодификаторы, чтоб конвертировать структуру данных в JSON или наоборот. Это значит, что интерфейс JSON может выступить в роли своеобразного переводчика между двумя приложениями, которые были написаны на разных языках, и в другом случае никогда не могли бы взаимодействовать друг с другом.

Формат JSON может стать чем-то вроде универсального соединительного звена на просторах интернета, и по этой причине WordPress и другие крупные сервисы решили воспользоваться этим преимуществом. Вдобавок ко всему, в WordPress JSON также заменяет немного устаревший XML-RPC-стандарт, который более сложен в использовании.

Под всем сказанным можно сделать следующие выводы:

  • API — это разъем на любом программном обеспечении;
  • REST – это дизайн данного разъема;
  • JSON – это кабель с универсальными вилками на концах;

JSON REST API и WORDPRESS

Ладно, мы поняли, что штука эта — полезная. Но разве WordPress уже не использует эти API в своей структуре? Ну да, один есть, и это — WordPress API. Используется он для WordPress-плагинов, и работает только с внутренними процессами WordPress. Но если мы говорим о взаимодействии с программным обеспечением извне, то этот API – устарел и не очень дружественен к пользователю. Новый WP API гораздо более универсален, так как создан для того, чтоб, WordPress мог с легкостью взаимодействовать с другими веб-сайтами и сервисами в интернете. С помощью универсального API можно отображать и сохранять контент с других сайтов и приложений, не зависимо от того, используется ли там движок WordPress или нет. Все верно, данный API позволяет платформе WordPress стать системой управления контентом, подходящей для любого приложения, написанного на любом языке.

Плюс, тоже самое работает и в обратном порядке. Все, что есть на вашем WordPress-сайте, будет также доступно и на любом внешнем веб-сайте и сервисе, включая:

  • Записи;
  • Страницы;
  • Пользовательские типы записей;
  • Медиа;
  • Комментарии;
  • Таксономии;
  • Пользователи;
  • И многое другое

Это работает, потому что в основе всего лежит HTTP, который доступен везде. Протокол позволяет сайтам посылать, создавать, читать, обновлять или удалять запросы между двумя сторонами. В HTTP команды POST, GET, PUT, и DELETE являются эквивалентами. Кроме того, API понимает URLы, структура которых похожа на директории, а как мы знаем, похожие ссылки как раз использует WordPress и другие системы управления контентом.

Суммируя сказанное, моно сказать, что если вы захотите перенести все записи определенного пользователя с вашего сайта на другой ресурс, то вы можете просто воспользоваться директивой —

GET http://yoursite.com/users/username.

Тоже самое касается и обновления единичных записей, удаления пользователей, публикации страниц и многого другого. Если коротко, то API позволяет вам управлять административной областью WordPress, без необходимости ручной авторизации и использовать контент, не принадлежащий WordPress.

Здорово, но безопасно ли это? Хорошая новость заключается в том, что WordPress REST API имеет встроенные меры безопасности. Волшебное слово здесь – это аутентификация. У интерфейса есть и куки-аутентификация, и OAuth-аутентификация. Таким образом, куки-аутентификация работает для плагинов и тем, а OAuth используется для аутентификации мобильных и веб-клиентов, а также клиентов настольных компьютеров. Оба метода лимитируют сторонние действия на вашем сайте. Так как API созданы для того, чтоб платформы могли лимитировано обмениваться строго определенной информацией, то ваши данные в полной безопасности.

Что значит WP API для WORDPRESS?

Эта одна из тех вещей, которой могут воспользоваться только разработчики? Как это изменение повлияет на среднестатистического пользователя сайта? Добавление WordPress REST API — это первый шаг к превращению WordPress в полноценную платформу для веб-приложений, так как он открывает платформу WordPress для взаимодействия со всем интернетом.

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

  • Любой разработчик может создать альтернативную WordPress админ-панель фактически на основе любого девайса или платформы.
  • Новый API может привнести множество альтернатив стандартному бэкенду, включая мобильные приложения, доступные для администрирования WordPress
  • Так как поддержка JSON изначально встроена в iOS и Android, то монополия WordPress-приложений станет историей.
  • Сторонний контент также будет доступен WordPress. И даже более того, API делает WordPress-контент независимым от языка программирования и среды, так что вы можете брать материалы из любого источника и отображать их, как захотите.
  • Ruby on Rails и другие фреймворки получат доступ к функциональности WordPress со всеми вытекающими из этого возможностями, и преимущества этих областей станут доступны для WordPress-пользователей.

Эта новость особенно порадует разработчиков, которые работают с фронтендом, так как они смогут менять фронтенд, как угодно, не затрагивая бэкенд.

Для не-разработчиков эта технология может быть использована для создания новых и решений для интеграции контента из других веб-профилей с их WordPress-сайтами.

WordPress входит в новую эру

WordPress не только станут доступны новые типы контента, но благодаря новому API и контент WordPress станет доступен всему интернету. Системы, построенные не на основе PHP, смогут использовать данные WordPress, адаптируя их с помощью собственных приложений.

Но интереснее всего звучит возможность использования WordPress-продуктов, к примеру, плагинов, на других платформах, и системах управления контентом.

Мобильные приложения, созданные на базе WordPress, будут доступны повсеместно, что является прекрасной новостью для всех тех, кто их создает или использует. Я думаю, что появятся решения, которые позволят обычному пользователю автоматически создавать мобильные приложения на базе WordPress-сайтов.

В итоге:

Как вы сами видите, новый WordPress REST API трансформирует WordPress в нечто новое. Он откроет WordPress всему интернету, и позволит платформе органичнее взаимодействовать со сторонними приложениями и сервисами. Появление WordPress REST API порадует не только разработчиков, но и обычных пользователей, которые получат множество новых возможностей.

Hooks are provided by WordPress to allow your plugin to "hook into" the rest of WordPress; that is, to call functions in your plugin at specific times, and thereby set your plugin in motion. There are two kinds of hooks:

  1. (Codex )
  2. (Codex )

You can sometimes accomplish the same goal with either an action or a filter. For example, if you want your plugin to change the text of a post, you might add an action function to publish_post (so the post is modified as it is saved to the database), or a filter function to the_content (so the post is modified as it is displayed in the browser screen).

For a thorough listing of all action and filter hooks in WP see Adam Brown"s WordPress Hooks Database .

Function Reference

Filter Functions
Actions Functions
Activation/Deactivation/Uninstall Functions

Actions

Actions are triggered by specific events that take place in WordPress, such as publishing a post, changing themes, or displaying an . An Action is a custom PHP function defined in your plugin (or theme) and hooked , i.e. set to respond, to some of these events. Actions usually do one or more of the following:

  • Modify database data.
  • Send an email message.
  • Modify the generated administration screen or front-end page sent to a user browser.

The basic steps to make this happen (described in more detail below) are:

  1. Create a PHP function that should execute when a specific WordPress event occurs, in your plugin file.
  2. Hook this function to the event by using the function.
  3. Put your PHP function in a plugin file, and activate it.

Create an Action Function

The first step in creating an action in your plugin is to create a PHP function with the action functionality of your plugin and put it in your plugin file (your plugin file must go into the wp-content/plugins directory). For example, if you want your friends to get an email message whenever you create a new post, you might define the following function:

Function email_friends($post_ID) { $friends = "[email protected],[email protected]"; mail($friends, "sally"s blog updated", "I just put something on my blog: http://blog.example.com"); return $post_ID; }

For most actions, your function should accept a single parameter (usually the post or comment ID, depending on the action). Some actions take more than one parameter -- check the documentation for the action (if available) or the WordPress source code for more information. Besides the one parameter, you can also access the , and call other WordPress functions (or functions in your plugin file).

Any text output by the function (e.g. with print) will appear in the page source at the location where the action was invoked.

NOTE : Keep in mind that other plugins or the WordPress core may already be using the function name you have thought of. See the next section, for more information.

Avoiding Function Name Collisions

It is possible that someone has created a plugin with a function named the same as one in your plugin.

This is a problem because PHP does not allow multiple functions with the same name. If two plugins provide a function with the same name, or a plugin provides a function with a name the same as a WordPress function, the blog could cease to function. There are two ways to avoid this problem.

The first solution is to prefix every function in your plugin with a unique set of characters. If your name is John Q. Public, you might declare your functions as function jqp_output() {...} . The likelihood that someone with the same initials does the same thing with their plugin is possible but low.

The second - and possibly easier - a solution is to enclose your plugin functions in a class and call the class methods statically. This sounds more complicated than it is.

Consider this class, which expands on the examples provided above:

Class emailer { static function send($post_ID) { $friends = "[email protected],[email protected]"; mail($friends,"sally"s blog updated","I just put something on my blog: http://blog.example.com"); return $post_ID; } } add_action("publish_post", array("emailer", "send"));

This class called emailer has a method send that implements the plugin functionality.

The add_action() function outside of the class adds the action to WordPress that tells it to call the send method when a post is published. The array used in the second parameter tells the plugin system to call the static method of the class "emailer" named "send".

The function send is protected from the global namespace by the class declaration. It is not possible to call send() directly, and so any other function named send will not collide with this one. If you did want to call send(), you would need to use a scope resolution operator, like this: emailer::send()

The above example is for static methods. If you have an instance of a class then that won"t work. To call a method of an instance you need to pass the instance as a variable. Consider the above example modified to take this into account:

Class emailer { function send($post_ID) { $friends = "[email protected],[email protected]"; mail($friends,"sally"s blog updated","I just put something on my blog: http://blog.example.com"); return $post_ID; } } $myEmailClass = new emailer(); add_action("publish_post", array($myEmailClass, "send"));

Classes are a complicated subject. Read more about them in the PHP documentation on classes .

Hook to WordPress

After your function is defined, the next step is to "hook" or register it with WordPress. To do this, call in the global execution space of your plugin file:

Add_action ("hook_name", "your_function_name", , );

Hook_name The name of an action hook provided by WordPress, that tells what event your function should be associated with. your_function_name The name of the function that you want to be executed following the event specified by hook_name . This can be a standard php function, a function present in the WordPress core, or a function defined by you in the plugin file (such as "email_friends" defined above). priority An optional integer argument used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order added to the action. accepted_args An optional integer argument defining how many arguments your function can accept (default 1), useful because some hooks can pass more than one argument to your function. This parameter is new in release 1.5.1.

In the example above, we would put the following line in the plugin file:

Add_action ("publish_post", "email_friends");

Install and Activate

The last step in getting your filter hook to work is to install the file and activate the plugin. The PHP function you wrote and the call must go into a PHP file together, and the PHP file must be installed in the wp-content/plugins directory. Once it is installed, you will need to visit the admin section of WordPress and activate your plugin; see for more details.

Current Hooks for Filters

Activation/Deactivation/Uninstall

If your plugin has tasks to complete only at activation or deactivation time, it can use and Action Reference - A listing of WordPress"s action hooks

External Resources

  • Adam Brown"s WordPress Hooks Database , a database of all WordPress" hooks, showing which version they come from, and linking to the source code spots that use them. This is the most complete.
  • Otto on WordPress:






2024 © gtavrl.ru.