Многие, наверное, знают, что в 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

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

 

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

8 июля 2014 |

2 Комментариев к “Удаленная публикация в WordPress через XML-RPC MetaWeblog API”

  1. Wild 8 февраля, 2017

    Здравствуйте. Подскажите пример обвязки на событие в WP. Например на публикацию поста. Что то как то не пошло то что я пытался сделать. Заранее благодарен.

  2. Azzrael 8 февраля, 2017

    В письме вы спрашивали про задачу публикации поста из одного блога в другой с сохранением post id. Сохранить post id при публикации через Metablog API, то есть сделать чтобы post id был был в двух блогах одинаковым, не получится ( через метаблог ).

    Если просто хочется постить что-то в другой блог после постинга на первом. То берете первый код, оборачиваете в функцию, и вешаете на action в первом блоге, в вашем примере, что был в письме, woocommerce_create_order. Туда и вешаете. Лучше все это сделать в виде плагина и не забыть заинклюдить Incutio. Все достаточно просто вроде.

Есть что сказать по теме статьи? Пожалуйста - пишите!