Движок WordPress буквально «нашпигован» различными функциями и возможностями. В этой статье я расскажу, как написать небольшое web приложение, из которого вы сможете публиковать посты в ваш блог. Как вы понимаете, писать такое приложение имеет смысл только в том случае, если оно расширяет стандартные возможности движка. На мой взгляд, есть две области, для которых такие приложения подходят лучше всего. Первая – это блог-клиенты. Тут преимущество в том, что вы можете писать пост без доступа в интернет и сохранить его на винчестере, а позже подключиться и опубликовать в блоге. Вторая – различные программы для сеошников. Здесь смысл в том, чтобы публиковать посты автоматически в нескольких блогах. Эта статья больше ориентирована на второй вариант.
Немного теории. WordPress имеет два механизма публикации постов. Первый – web интерфейс (в данном случае он нас не интересует). И второй – с помощью XML-RPC. RPC расшифровывается как Remote Procedure Call (удаленный вызов процедур/функций). В принципе эта технология очень похожа на обычные запросы. От клиента к серверу передается строка с данными. Но XML-RPC требует, чтобы эта строка имела специальный формат. Примечание. По большому счету существует еще и третий вариант – использование встроенных функций WordPress. Но он доступен только для плагинов. Используя XML-RPC можно опубликовать пост с помощью всего одного запроса, а специальные библиотеки позволяют не углубляться в тонкости стандарта.
Таким образом, не сложно написать программу, которая будет отправлять пост сразу в сотню-другую блогов. Примечание. Естественно, сначала вам придется сделать эти посты «уникальными», но это отдельная тема. Переходим к практике. Инструменты. Сформировать вручную XML-RPC запрос довольно сложно, поэтому удобно использовать специальную библиотеку. Кроме того, сеошные приложения не ограничиваются только постингом, а имеют ряд других не менее полезных функций. Т. е. лучше с самого начала использовать фреймворк. Для этого примера я выбрал CodeIgniter, который очень прост в изучении и имеет встроенную библиотеку для работы с XML-RPC. Также нам понадобится документация по функциям, которые поддерживает WordPress.
XML-RPC определяет только формат запросов, а уже разработчик приложения решает какие функции будут поддерживаться. WordPress поддерживает сразу четыре API: 1) WordPress API. 2) Blogger API. 3) metaWeblog API (). 4) Movable Type API. Но, насколько я знаю, они не взаимозаменяемые. Например, WordPress API не имеет функции для публикации поста (wp. newPage публикует страницу, а не пост, и при этом используется функция mw_newPost из MetaWeblog API). В общем, для публикации постов мы будем использовать MetaWeblog API. Настраиваем CodeIgniter. Для данной задачи настроек минимум. Открываем system\application\config\autoload. php и подключаем url helper.