:-)
  • Пригодился класс?

    Яндекс Яндекс. Деньги Хочу такую же кнопку

    Скачать можно:

    Wp-poster (13.8 KiB)

    Вопросы:

    1. Что это такое?
    2. Зачем это надо?
    3. Как мне отправить пост на блог?
    4. Что значит '32700 parse error. not well formed'
    5. Что значит 'XML-RPC services are disabled on this blog.'
    6. Как мне создать категории?
    7. Как мне узнать ID поста?
    8. Когда будет можно делать ххххх?
    9. Какие версии WordPress совместимы?
    10. Какие условия использования?
    11. У меня вырезаются все теги, что делать?

    Ответы:

    1. Что это такое?

    Это PHP класс написанный мной на работе для упрощения отправки постов в блог на WordPress. По сути, сам класс является лишь фасадом к классу IXR_Client, который производит общение по протоколу XML-RPC с блогом. Класс мной выложен в свободное использование.


    2. Зачем это надо?

    Некоторые люди хотят организовать кросс-постинг, некоторые хотят иметь возможность сразу отправлять несколько постов. У каждого свои цели. Класс - это лишь инструмент, а уж цель придумывает пользователь.


    3. Как мне отправить пост на блог?

    Пример:

    <?php

    require ('/wp_poster.php');

    require ('/ixr_client.php');

    $poster = wp_poster::getInstance();

    $blog = new wp_blog('http://wordpress/xmlrpc.php', 'test', 'test', 0);

    $post = new wp_post();

    $post->setTitle('Заголовок поста');

    $post->setDescription('Текст до _читать далее_');

    $post->setPostStatus('publish');

    $poster->post($blog, $post);


    4. Что значит '32700 parse error. not well formed'

    Это значит, что XML запрос к серверу или ответ содержат ошибки. Для начала проверьте, что вы посылаете текст в формате UTF-8.


    5. Что значит 'XML-RPC services are disabled on this blog.'

    Это означает, что в блоге выключена настройка, позволяющая отправлять посты через протокол XML-RPC. Вы можете ее включить в панели администратора.


    6. Как мне создать категории?

    $blog->createCategories(array('категория1', 'категория2'));


    7. Как мне узнать ID поста?

    Сейчас так:

    $id = $poster->post($blog, $post);

    Со временем будет изменено на:

    $posted = $poster->post($blog, $post);

    $id = $posted->getId();


    8. Когда будет можно делать ххххх?

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


    9. Какие версии WordPress совместимы?

    Могу отвечать только за 2.6 и 2.7. С остальными не пробовал.


    10. Какие условия использования?

    Условия использования WordPress и класса IXR_Client смотрите на сайте вордпресса. Мой класс разрешено использовать и изменять по желанию, запрещено только коммерческое распространение. Класс предоставляется as is, я не не несу ответственности за результаты его использования, все только на свой страх и риск. Все авторские права принадлежат мне. Так же желательно, хотя и не обязательно указывать ссылку на эту страницу.


    11. У меня вырезаются все теги, что делать?

    Это багрепорт от Kirill'a. Он говорит, что дело в libxml2. При передаче тегов нужена версия <=2.6.32

    Update:
    Решение проблемы с удалением угловых скобок (тегов). Для вордпресса есть специальный плагин:
    http://josephscott.org/code/wordpress/plugin-libxml2-fix/. Говорим спасибо Kinslayer.

  • 104 Responses to “WP-poster”

    Страниц: « 11 10 9 8 7 6 5 4 [3] 2 1 » Show All

    1. 24
      Viper Says:

      @CharnaD: в общем, провозился весь день, перечитал кучу форумов, но так ничего и не заработало. Если не сложно, попробуй добавить какое-нибудь сообщение со своего скрипта, который точно работает. Может проблема в самом блоге? [удалено] На этом адресе я поставил новый WP 2.7.1, удалил стандартное сообщение и разрешил удалённую публикацию через XML-RPC. Может нужно ещё какие-нибудь насторойки поменять или поставить плагины?

    2. 23
      CharnaD Says:

      Никогда не замечал.. у меня все нормально. Пришлите скрипт в архиве мне на почту (есть в колонке справа) я посмотрю в чем может быть дело.

    3. 22
      Юрий Says:

      Спасибо! Обязательно попробую сделать виртуальных хост. У меня такой еще вопросик: почему может быть такое, что посты «перепутываются»? Для интереса сделал цикл в котором подряд изменяются номера заголовка. Т.е. Сначала пост с title «Заголовок1″, затем «Заголовок2″ и так далее. А при просмотре блога показывается что-то вроде случайного порядка.

    4. 21
      CharnaD Says:

      аса74, Юрий правильно говорит, скачайте последнюю версию.

      Юрий, на локалхосте работать не будет. Дело в том, что делать fopen, открывать curlом и т.п. нельзя на локалхосте. Вы можете настроить виртуальный хост у себя (как это сделано у меня. у меня локальный вордпресс расположен по адресу http://wordpress/). Пропишите его в hosts (например wordpress 127.0.0.1) и пользуйтесь

    5. 20
      Юрий Says:

      А вы не пробовали запускать скрипт на локалхосте? У меня сплошные ошибки вылетают.

    6. 19
      CharnaD Says:

      @Viper, я об этом и говорю. Для нормальной работы нужен как раз 200. А у вас 500. Это говорит о неправильной настройке сервера. Файл должен открываться и писать что-то про то, что «Принимаются только POST запросы». Ищите проблему в сервере. Возможно дело в .htaccess.

      UPD: кстати, путь надо указывать не к IXR_Client, а к xmlrpc.php и его же открывать

    7. 18
      Viper Says:

      2CharnaD: нет, ошибка HTTP status code was NOT 200, т.е. статус НЕ 200.
      Скорее всего, у сервера появляются проблемы с библиотекой IXR-Client. Я нашел в инете несколько других способов постить в WP и все они не работают – даёт эту же ошибку. А если в строке адреса ввести путь к библиотеке, то выскакивает Error 500: Internal Server Error.

    8. 17
      CharnaD Says:

      @Viper, это означает, что класс искал файл xmlrpc.php в вашем вордпрессе и не нашел. HTTP статус 200 – это значит файл найден и передается. Проверьте правильно ли вы указали путь к файлу, не происходит ли редирект (с этим я не уверен, мешает ли 301й редирект работе класса).

      @Юрий, ну да $post, я пишу wp_post – это значит экземпляр этого класса) А там как уж назовете. Пользователей пока создавать нельзя. Причем по-моему даже вордпресс еще этого не поддерживает. Но в будущем вполне возможно это будет.

    9. 16
      Юрий Says:

      Не уверен, но вроде бы в нынешней версии постера автор задается не как wp_post->setAuthorId(id), а $post->setAuthorId(id). Но это мелочи. А можно ли создавать пользователей также как и посты?

    10. 15
      Viper Says:

      C ошибкой разобрался, но постить всё равно не получается – приходит такой ответ:

      Error #-32300: transport error – HTTP status code was not 200

      Из-за чего это может быть?

    Страниц: « 11 10 9 8 7 6 5 4 [3] 2 1 » Show All

    Leave a Reply