Подключение стороннего api плагина майнкрафт. API плагин

03.03.2020

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:

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)

Сегодня мы поговорим о 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 порадует не только разработчиков, но и обычных пользователей, которые получат множество новых возможностей.

Вышедшему в конце 2015. Однако, по большому счёту, только продвинутые разработчики нашли время, чтобы узнать, насколько мощным является это предложение.

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

В этой статье, мы представим вам проект WordPress REST API, разъясним, чем он так хорош, потом предложим несколько идей его использования. Поэтому не теряем время и начинаем!

Знакомство с WordPress REST API

Проект WordPress REST API (REST от англ. Representational State Transfer – «передача состояния через представления») подтверждает, что WordPress делает шаги к тому, чтобы стать полноценной платформой приложений. Его наличие – это неоспоримое доказательство, поскольку оно добавляет стандартный REST API к ядру WordPress.

Проект вначале был загружен на GitHub для разработчиков в 2013 разработчиками Ryan McCue и Rachel Baker . Независимый плагин REST API был встроен в ядро WordPress в декабре 2015 , после того, как получил огромную поддержку и привлёк около 100 участников, желающих работать над улучшением его возможностей.

С момента, когда WordPress API REST стал частью ядра, он доказал свою эффективность. Вот лишь несколько реальных примеров для наглядности применения и вдохновения в своих проектах:

  1. Event Espresso применяет REST API для обеспечения доступа разработчикам к их международной инфраструктуре, позволяя разрабатывать приложения, с применением их сервисов.
  2. Simmer разрешает разработчикам доступ к API в целью расширения своей функциональности в полноценное мобильное приложение или настраивания тем.
  3. JoinIn предоставляет собственный виджет «встраиваемый» с использованием REST API, заполняя его соответствующими данными везде, где он отображается.

Это лишь верхушка айсберга, когда речь идет об инновационных целях REST API. Однако давайте обсудим, как работает сам REST API.

Как работает WordPress REST API

Если кратко, то REST API работает посредством манипулирования текстовыми данными из одного места в другом без прямого доступа к базе данных или интерфейсу пользователя. Существует много типов API (Application Programming Interfaces), несмотря на это REST остаётся современным и актуальным стандартом .

REST API передаётся через точки доступа Hyper Text Transfer Protocol (HTTP), используя формат JavaScript Object Notation (JSON). Говоря проще, эти технологии обеспечивают доступ к API используя уникальные веб адреса для доставки данных, которые ведут себя как объекты JavaScript .

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

Какое значение WordPress REST API имеет для разработчиков

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

REST API базируется на JavaScript, внимание к которому всё возрастает, это намекает нам на то, какие языки программирования важно знать. Скоро вы обнаружите, что JavaScript стороны сервера – это новый PHP. Это уже может быть видно на новом ПО WordPress.com, Calypso , который работает полностью на JavaScript и REST API.

Стандартизируя, способ взаимодействия приложений (включая ядро WordPress) с данными WordPress, разработка под WordPress станет проще и интуитивно понятнее. Более того, это облегчит интеграцию со сторонними платформами.

Надеюсь, теперь у вас появилось больше аргументов в пользу того, зачем важно начать изучать использование этой технологии уже сейчас. Пришло время сделать первые шаги по использованию REST API в вашей собственной работе!

5 Шагов для старта с WordPress REST API

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

Для этого нужно открыть программу с интерфейсом командной строки (Command Line Interface CLI) на вашем компьютере – терминал на macOS или Linux и командную строку на Windows. CLI позволяет напрямую взаимодействовать с REST API, без необходимости писать дополнительные скрипты для запроса и обработки информации. Любой запрос, который вы пишете в CLI может быть сценарием на PHP, JavaScript и другом языке, но метод будет отличаться для каждого. В CLI прямое выполнение команд. Просто введите нужную команду и нажмите Enter.

Мы также рекомендуем настроить демонстрационный сайт или тестировать локально, а не пробовать эти шаги на живом сайте. И наконец, ещё все одно условие, чтобы версия WordPress у вашего сайта была 4.4 или выше. Если вы готовы, то давайте начинать!

Шаг 1: Знакомимся с основными понятиями REST API

Прежде чем начнём, давайте ознакомимся с ключевыми понятиями REST API . Всего пять основных понятий и терминов, с которыми следует познакомиться. Давайте их рассмотрим:

  1. Маршруты (‘Routes’) и Ресурсы или точки доступа (‘Endpoints’). Это наиболее важный аспект в понимании REST API. Маршруты помогают вам перемещаться между вашими ресурсами, когда определенный HTTP-метод (например, статический набор данных или действие) подключен к определенному маршруту. Например, /wp-json/ – это маршрут, настроенный как ресурс, созданный для отображения нам доступных маршрутов.
  2. Запросы (Requests). Они создаются путем запуска правильных ресурсов и прохождения данных.
  3. Ответ (Responses). Вкратце, предоставление данных, которые вы запросили или возвращение ошибки, чтобы дать вам знать, что что-то пошло не так.
  4. Схемы (Schemas). Ниже приведены ответы шаблонов, поэтому вы всегда точно знаете, где искать нужные данные.
  5. Классы контроллеров (Controller classes). Они позволяют создавать собственные маршруты и ресурсы. Пока вам не нужно беспокоиться об этом, они станут более полезными в дальнейшем.

Как только вы поймете эти пять концепций, вы можете начать углубляться в сам API REST, начиная с его точек доступа.

Шаг 2: Узнаём наиболее полезные точки доступа REST API

WordPress REST API предлагает reference handbook со всеми точками доступа (ресурсами), где вы сможете найти наиболее полезные для себя. Прежде всего, нужно знать, как построить HTTP-вызов API REST. Базовая часть любого вызова API-интерфейса WordPress выглядит следующим образом, замените yourdomain.com своим:

Http://yourdomain.com/wp-json/

Вы можете проверить соединение, выполнив команду curl в своем CLI, используя свой собственный URL-адрес:

Curl -X OPTIONS -i http://yourdomain.com/wp-json/

В ответ вас должно поприветствовать сообщение от HTTP . Дальше можно модифицировать эту команду, используя некоторые из главных ресурсов. Теперь мы просто используем версию GET curl.

Чтобы получить JSON список ваших публикаций в WordPress, можно использовать следующее:

Вслед за этим, попробуйте следующее, чтобы проверить все существующие страницы WordPress:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/pages

Вы можете поэкспериментировать с каждой из этих точек доступа (и больше!) в CLI, чтобы рассмотреть какой ответ выдаёт каждый из них.

Шаг 3: Изучаем основы аутентификации REST API

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

Начнём с установки плагина WordPress REST API Basic Auth . Это простой плагин для разработчиков, который поможет изучить REST API быстро, и не предназначен для реальных сайтов. Однако, процесс установки такой же как и у любого другого плагина.

Как только Basic Auth установлен, вы сможете выполнять аутентификацию через CLI с флагом user . Вот пример того, как применить метод аутентификации пользователя, используя curl для просмотра неопубликованных записей:

Curl -X GET --user username:password -i http://yourdomain.com/wp-json/wp/v2/posts?status=draft

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

Шаг 4: Выбираем свою первую публикацию WordPress при помощи REST API

Когда вы поймете, как делать базовые вызовы API REST с помощью curl, попробуйте выбрать конкретную запись. Вначале выведем все публикации, как мы это делали ранее:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts

Вы можете использовать этот примем с добавлением ID для любого ресурса REST API, независимо от того, вы хотите отобразить публикацию, страницу или таксономию.

Шаг 5: Вносим изменения в публикацию в WordPress через REST API

И наконец, давайте попробуем внести изменения в выбранную вами публикацию. Вместо команд OPTION или GET , в этот раз будем использовать POST для внесения изменений. GET используется для чтения данных, в то время как POST – для их отправки.

Давайте переименуем вашу публикацию отправкой запроса POST вместе с данными для аутентификации. Новые изменения будут внесены с использованием флага d в конце команды. Будем передавать пользовательский JavaScript объект устанавливая переменную title на своё значение, такое как My New Title , как показано в коде ниже:

Curl -X POST --user username:password http://yourdomain.com/wp-json/wp/v2/posts/ -d "{"title":"My New Title"}"

Убедитесь, что вы заменили имя пользователя, пароль и ID публикации, а также название на свои. Вы можете выбрать ещё раз заданную публикацию для проверки изменений:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts/

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

Заключение

WordPress REST API – новая мощная версия ядра WordPress и многие разработчики уже начали применять её возможности. Соответственно, ознакомившись сейчас с тем, как работать с новой возможностью, вы повысите свои программистские навыки и сможете создать приложение используя WordPress как фреймворк.

Напомним, мы прошли пять шагов на пути к изучению взаимодействия с WordPress REST API:

  1. Знакомство с основными понятиями REST API.
  2. Наиболее полезные ресурсы/точки доступа REST API.
  3. Изучение основ аутентификации REST API.
  4. Получение публикации на WordPress, используя REST API.
  5. Изменение публикации WordPress, используя REST API.

Какие у вас возникли вопросы по поводу WordPress REST API? Пишите нам в комментариях!

Excellent for ERP integration

This plugin is EXCELLENT, very useful to sync nopCommerce with ERP systems. It is, however, not complete and a little outdated. Download the source code and sample application from GitHub to add missing code.

MY PERSONAL EXPERIENCE

I used it for a customer that has been running a physical store for years and has only recently asked me to create the eCommerce site.
He already has a highly customized ERP system for maintaining commerce data, with more than 300 tables, including products and customers.
So although nopCommerce has a wonderful Admin panel he considered it an overhead maintaining two systems and asked me how long it would take to build an automatic one way sync mecchanism from his ERP to NopCommerce, for now constantly updating product prices and quantities.
I said I honestly didn"t know, I"d take one day to do some analysis, see what plugins were available and give him a more precise estimate by the end of the day.
Luckily I found this amazing plugin, downloaded the source code and accompanying sample. The API is easy to change as you simply mimic the database structure to provide any missing functionality. The sample is tougher as it"s very basic, but it does show how to call the API functions and how the token authentication mechanism works.
This is what I personally did:
1) Copied the sample MVC web application on a server on the intranet with IIS and created a CNAME record so that it could be accessed as http://nopSync
2) Gave it the same "look and feel" as the nopCommerce Admin panel by doing "view source" and referencing most of the same css files
3) Removed the login form and session variables, hard coded credentials in web.config and automatically authenticated on load
4) Used a SQL script to insert SKU and Manufacturer for all nopCommerce products. These two combined fields were my key to uniquely match products between the two systems
5) The api provides a "list" function to select all products but updates are performed one by one.
I could have read all the products and then with a loop accessed the ERP system each time, checking the price and quantity and updating nopCommerce if there were differences.
However, I considered it more performant to read all the nopCommerce data into a local database PRODUCTS table with a DoesItRequireUpdating flag by default equal to false.
The benefit of this was that the ERP system would only be accessed once. With a single query on the PRODUCTS table using a JOIN on ERP database tables I was able to update PRODUCTS prices, quantites and flags and subsequently call the update API once for each product with flag set to true.
6) I allowed for both manual and automatic syncronization. Manual by inserting a link to http://nopSync in the Admin panel menu and automatic by using a scheduled task to repeatedly call the web sample.

When the customer asked me, at the end of the day, how many days it would take to build the ERP syncronization, I said that thanks to SevenSpikes API plug it was online and syncronizing. Thanks SevenSpikes!!