Удаленная публикация в WordPress через XML-RPC MetaWeblog API
Многие, наверное, знают, что в WordPress можно публиковать записи удаленно. Есть куча клиентов для этого, но самое интересное, что с помощью этой функции можно наполнять сетку сайтов через единый веб интерфейс. У такого способа масса преимуществ. Безопасность ( вход в админки сайтов закрыт по IP ), более работа с копирайтерами и редакторами ( они работают в едином, более упрощенном, интерфейсе и не имеют доступа собственно сайтам ), к такому веб интерфейсу можно прикрутить кучу разных плюшек, которые на самих wordpress сайтах не нужны.
Но сегодня я выложу немного кода, который позволяет мне постить статьи на WordPress сайтах через XML-RPC MetaWeblog API. Я использую PHP, Yii, Incutio XML-RPC library. Фреймворк и библиотека не принципиальны конечно. В CodeInteger например xml-rpc библиотека встроена по умолчанию, и, кстати, нравится мне значительно больше, чем Incutio.
Для начала ссылки
Настройка WordPress
- Ну во-первых ваш PHP должен быть собран с функцией libxml и php5-xmlrpc. Я не сталкивался с хостингами, где бы этого не было, но может быть всякое.
- В версиях WordPress выше 3.5 удаленная публикация включена по умолчанию. В более старых версиях её надо включить Settings > Writing > Remote Publishing.
- И, наконец, вам нужен юзер из под которого будут публиковаться удаленные статьи. Из под админа это делать не разумно. Поэтому заведите отдельного пользователя с правами автора.
Публикация поста через MetaWeblog API
Читайте комменты в коде:
Публикация изображения через MetaWeblog API
С публикацией поста все просто. С публикацией картинки веселее. Особенно если нужно привязать картинку к посту, и вставить загруженную картинку в пост. То есть сначала надо загрузить картинку, получить ссылки на разные её размеры, потом добавить картинки в текст поста, пост опубликовать, и проставить картинке привязку к посту.
Как то так получается. Обвязку вокруг показывать не вижу смысла, сами свое допишете. Если что – спрашивайте в комментариях.
8 июля 2014 | Раздел: Программирование | Метки: wordpress
–
Если просто хочется постить что-то в другой блог после постинга на первом. То берете первый код, оборачиваете в функцию, и вешаете на action в первом блоге, в вашем примере, что был в письме, woocommerce_create_order. Туда и вешаете. Лучше все это сделать в виде плагина и не забыть заинклюдить Incutio. Все достаточно просто вроде.