Многие, наверное, знают, что в WordPress можно публиковать записи удаленно. Есть куча клиентов для этого, но самое интересное, что с помощью этой функции можно наполнять сетку сайтов через единый веб интерфейс. У такого способа масса преимуществ. Безопасность ( вход в админки сайтов закрыт по IP ), более работа с копирайтерами и редакторами ( они работают в едином, более упрощенном, интерфейсе и не имеют доступа собственно сайтам ), к такому веб интерфейсу можно прикрутить кучу разных плюшек, которые на самих wordpress сайтах не нужны.


Но сегодня я выложу немного кода, который позволяет мне постить статьи на WordPress сайтах через XML-RPC MetaWeblog API. Я использую PHP, Yii, Incutio XML-RPC library. Фреймворк и библиотека не принципиальны конечно. В CodeInteger например xml-rpc библиотека встроена по умолчанию, и, кстати, нравится мне значительно больше, чем Incutio.

Для начала ссылки

Кодекс по функциям MetaWeblog API
Incutio XML-RPC library

Настройка WordPress

  • Ну во-первых ваш PHP должен быть собран с функцией libxml и php5-xmlrpc. Я не сталкивался с хостингами, где бы этого не было, но может быть всякое.
  • В версиях WordPress выше 3.5 удаленная публикация включена по умолчанию. В более старых версиях её надо включить Settings > Writing > Remote Publishing.
  • И, наконец, вам нужен юзер из под которого будут публиковаться удаленные статьи. Из под админа это делать не разумно. Поэтому заведите отдельного пользователя с правами автора.

Публикация поста через MetaWeblog API

Читайте комменты в коде:


 

Публикация изображения через MetaWeblog API

С публикацией поста все просто. С публикацией картинки веселее. Особенно если нужно привязать картинку к посту, и вставить загруженную картинку в пост. То есть сначала надо загрузить картинку, получить ссылки на разные её размеры, потом добавить картинки в текст поста, пост опубликовать, и проставить картинке привязку к посту.


 

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