// codeart.ru / Работаем с кодом / WordPress. Публикация с помощью XML-RPC Форум

WordPress. Публикация с помощью XML-RPC rss подписка

Автор: Evgeniy Sergeev

Мне кажется, что развитие отечественной блогосферы идет семимильными шагами и недалек тот день, когда все русскоязычные фрилансеровские биржи будут в буквальном смысле завалены предложениями по разработке плагинов для известных блог-движков. Поэтому сегодня я хочу рассказать о том, как можно, не прилагая особых усилий, программно добавить пост к WordPress блогу используя XML-RPC API. По своему опыту скажу, что больше половины заказов, которые я выполнил на западной бирже RentACoder было связано именно с WordPress. Как известно, то что популярно на западе сейчас, через некоторое время становится популярным и в нашей стране.

  1. Интересная статья.
    Возник небольшой вопрос, существуют ли библиотеки, которые объединяют все эти API? Т.е. позволяют задать данные и нужный API.

  2. >Возник небольшой вопрос, существуют ли библиотеки, которые объединяют все эти API?

    Не встречал, но если у кого-то есть информация о подобной библиотеки, буду признателен за ссылку.

  3. Вряд ли есть подобные API. Слишком трудоемкая работа их делать бесплатно;). Однако есть сервисы, которые помогают постить сразу в несколько блог сервисов, это не секрет наверно:)

  4. Библиотеки есть…но они стоят немалых денег)

  5. По-моему для реализации данной задачи (объединения) — отлично подойдет паттерн Factory.

    Достаточно создать несколько бекендов для работы с разными API, а потом в фабричном методе просто вызывать то, что требуется и работать прозрачно.

    Это, имхо, вполне реально и не должно стоить много денег. Пяти звезд во лбу это не требует.

  6. А где можно почитать про функции XML-RPC, используемые в вордпрессе? Я конечно понимаю, что можно поковырять соответствующий файл, но хотелось бы с комментариями.

  7. Можгно поискать описание указанных мной API через Гугл или Яндекс(например http://www.xmlrpc.com/metaWeblogApi). Но здесь нужно понимать, что в WP данный API реализован не в полном объеме.

    Хотя я бы все же посоветовал зяглянуть в xml-rpc.php. Поверьте, ничего сложного там нет.

  8. api достаточно просты чтобы громоздить на их основе библиотеки — все достаточно просто. Уддивил громоздкий когд вызова xml-rpc, в wordpress есть замечательный модуль class-IXR.php который делает все что надо, ну например не нужно в явном виде указывать ттип аргументов — все делает библиотека.

    Я вот написал собственное апи для работы с комментариями wordpress для коммент клиента. Получилось интересное приложение — типа почтового клиента, но для комментариев, плюс всякие дополнительные бонусы типа социального комментирования или запуск клиента по клику по ссылки на форме комментария: для этого коммент клиент регистрирует в системе протокол commenton, возможность отправлять комментари через свой блог — таким образом ваш комментарий будет на двух блогах сразу.

    Вообще xml-rpc, soap очень интересные вещи, позволяющие роботизировать некоторые задачи…

  9. Владимир, интересно посмотреть на Ваш апи для работы с комментариями.

    P.S. Вышеуказанный пример приведен для стандартных библиотек CodeIgniter, но никто не мешает взять class-IXR и приспособить под свои нужды.

    P.P.S для тех кому интересен IXR могут прочитать мануал на него — http://scripts.incutio.com/xmlrpc/manual.php

  10. Первое время я апи для комметариев держал в отдельном файле и его надо было класть рядом с xmlrpc.php и соответствено урл для апи был специальный, потом переделал все в плагин и теперь все мои xml-rpc функции доступны по стандартномуадресу, который отдается в заголовках X-Ping Скачать плагин коммент сервер можно отсюда:
    http://blogclient.ru/download/commentserver.zip

    А Windows программу для управления комментариями здесь (1.6Mb):
    http://blogclient.ru/download/wpcommentclientsetup.exe

  11. >Хотя я бы все же посоветовал зяглянуть в xml-rpc.php. Поверьте, ничего сложного там нет.

    В принципе, я так и поступил. Да, все просто 😉

  12. Сетка блогов? а исходники ее остались? :)

  13. sheller, остались конечно.

  14. Евгений, а у вас ошибка в коде:

    ‘description’ => array(stripslashes($contents),’string’),

    переменная $contents не определена, $content должно быть

  15. и еще ( пропущена в return в двух случаях

  16. Для того, чтобы без забот постить в блоги есть специальная программа, которая и морфологию ошибок проверяет, а называется она Live Writer, зачем придумывать велосипед.

  17. @Студия электронного дизайна, ради интереса… какие возможности у удобного плэйн-текстового редактора? )

  18. Добрый День.
    Женя, не подскажите, есть ли возможнотсть, используя xmlrpc.php в WordPress’e устанавливать данные для блога, которые при ручной публикации идут в блоке SEO All io one, тоесть страницы, (keywords, description..)?

  19. Integralbe, думаю, что нельзя. Знаю, что можно теги добавлять, но думаю, что это не совсем то, что Вам нужно.

  20. Привет Евгений.
    Насчет мета-данных — есть возможность их устанавливать. Данные задаются в поле «custom_fields» массива, причем в хтмл-коде все выглядит будто это плагин All in one втулил их…

  21. Integrable, спасибо за информацию. Буду иметь в виду.

  22. добрый день.

    Работая с xml-rpc, заметил что xmlrpc не понимает символов типа: ‘…’, ‘•’ и мн.других. В результате, если текст блога содержит такие символы, выдается ошибка Я так понимаю проблема на уровне xml, поскольку у водрпресса проблем с такими символами нет. Может вы встречались с таким?

  23. Integrable, какая ошибка выдается?

  24. -32700 : parse error. not well formed

    при этом, если выставить $client->debug = true,
    то xml коде, который выводится, «плохие символы» заменяются пустыми квадратиками…

  25. Integrable, приношу свои извинения, что не ответил своевременно, но в конце года у меня остается очень мало свободного времени. С ходу сказать в чем причина я не могу. Надо тестировать и разбираться. Так что помочь не могу.

    Если разберешься в чем дело, то отпиши здесь, буду очень благодарен.

    P.S. еще раз извини за долгий ответ!

  26. Integrable, попробуй вот что — в файле /wp-includes/class-IXR.php найди закомментированные строки (в классе IXR_Message):
    die(sprintf(‘XML error: %s at line %d’,
    xml_error_string(xml_get_error_code($this->_parser)),
    xml_get_current_line_number($this->_parser)));

    и разкомментируй их. После чего смотри какую ошибку выдает тебе XML парсер.

  27. спасибо, будем разбираться!

  28. Integrable, Скорее всего кодировку используете не UTF-8

  29. Вы говорили, что для заказчика сделали постинг в MovableType. Можете привести пример реализации. ОООчень интересно. Так как пытаюсь для себя сделать постер в CMS TXP, а она схожа по синтаксису с первым

  30. Здравствуйте. У меня кокраз возникла необходимость синхронизации постов между двумя wordpress блогами — клонами. Подскажите пожалуйста куда копать. С ворпресом только начал работать. Искать ли плагин или ковырять код?

  31. Жень, такой вопрос к вам — вы выше советовали:

    «Integrable, попробуй вот что — в файле /wp-includes/class-IXR.php найди закомментированные строки (в классе IXR_Message):
    die(sprintf(’XML error: %s at line %d’,
    xml_error_string(xml_get_error_code($this->_parser)),
    xml_get_current_line_number($this->_parser)));
    и разкомментируй их. После чего смотри какую ошибку выдает тебе XML парсер.»

    Но я не нашел, где именно должна отображаться ошибка — я на старом WP работаю и после смены хостинга тупо не работают удаленные публикации.

    Самое неприякольное, что у меня WP работает на cp1251, потому ошибку тяжело найти — предполагаю, что где-то что-то не так происходит с определением версии php…

    Что-то подскажете по данному вопросу. Какие данные/файлы нужны, чтобы понять, в чем дело?

  32. Есть еще предположение, что это libxml — сейчас отписал хостеру, что он не хостер, а куча гемора, жду от него ответа…

  33. Евгений Фоменко,

    1. Из какой программы работает с XML-RPC
    2. Какие версии WP, PHP
    3. В настройках WP разрешено использование XML-RPC

  34. привет всем.
    у меня есть два блога на вордпресе. причем они идентичны. только один на русском, другой на английском. хотел поинтересоваться.. можно ли связать их между собой, чтобы посетитель мог бы при необходимости переключаться на версию на своем языке?
    спасибо.

  35. Очень интересная тема!

  36. К сожалению статья не раскрывает сути, как постить в блог через xml-rpc. Есть отсыл к фреймворку, есть выдернутая из кода функция отправки, но нет работающего примера. Сердит.

  37. Спасибо, как раз пишу автоматический публикатор для WP. Ваша функция очень пригодится, не думал что всё так просто!

  38. Слабо шарю в пхп. Жень, если не сложно, приведите кусок рабочего кода вместе с подключением фреймворка.

    И еще вопрос- апи вордпресса позволяют дистанционно пихать ему картинки? Не вставлять в код тег img, а именно загружать файл- чтобы картинка была на удаленном сервере?

    Спасибо!

  39. Stas, я сам пхп уже с год не занимаюсь, делать рабочий пример с подключением фреймворк и т.д. совсем нет желания.

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

Leave a Reply

« »