| Пригодился класс? |
Скачать можно:
Wp-poster
Вопросы:
- Что это такое?
- Зачем это надо?
- Как мне отправить пост на блог?
- Что значит '32700 parse error. not well formed'
- Что значит 'XML-RPC services are disabled on this blog.'
- Как мне создать категории?
- Как мне узнать ID поста?
- Когда будет можно делать ххххх?
- Какие версии WordPress совместимы?
- Какие условия использования?
- У меня вырезаются все теги, что делать?
Ответы:
1. Что это такое?
Это PHP класс написанный мной на работе для упрощения отправки постов в блог на WordPress. По сути, сам класс является лишь фасадом к классу IXR_Client, который производит общение по протоколу XML-RPC с блогом. Класс мной выложен в свободное использование.
Некоторые люди хотят организовать кросс-постинг, некоторые хотят иметь возможность сразу отправлять несколько постов. У каждого свои цели. Класс - это лишь инструмент, а уж цель придумывает пользователь.
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. Вы можете ее включить в панели администратора.
$blog->createCategories(array('категория1', 'категория2'));
Сейчас так:
$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.






Декабрь 20th, 2011 at 12:43
Отличная прога
Декабрь 6th, 2011 at 14:33
Проблема с категориями.
Не на все категории отправляет пост.
Что может быть?
Ноябрь 22nd, 2011 at 15:23
В общем, у меня заработало. Что делал чтобы выявить причину неисправности?
В файле test.php, который в стандартном архиве:
1. включил сообщения об ошибках
error_reporting(E_ALL);
ini_set(‘display_errors’,’1′);
2. вывел на экран содержимое всех переменных
echo ‘
‘;
echo ‘
‘;
echo ‘
‘;
Благодаря этому, увидел что есть ошибка вида:
Error #-32300: Transport error — HTTP status code was not 200. Got: HTTP/1.1 302 Found
3. В конец файла .htaccess добавил строчку SecFilterEngine Off
Всё, постинг заработал!
Ноябрь 22nd, 2011 at 14:57
Возможно с 3.2.1 уже не работает. Я точно не знаю, этому классу уже много лет, и много лет он не обновлялся. Сложно тут что-то определенное сказать. Попробуйте поковырять IXRClient (вроде так файл называется, хотя могу ошибаться) — там должен быть список API функций, может получится у вас исправить класс, чтобы он работал.
Ноябрь 22nd, 2011 at 12:54
По платформе:
wordpress 3.2.1
Подключил отображение ошибок, исправил пути к файлам класса.
После этого опять пустой экран и в админке ничего нового не появляется. Вот код:
error_reporting(E_ALL);
ini_set(‘display_errors’,’1′);
require (‘./wp_poster.php’);
require (‘./ixr_client.php’);
$poster = wp_poster::getInstance();
$blog = new wp_blog(‘, ‘admin’, ‘admin’, 0);
$post = new wp_post();
$post->setTitle(‘текст’);
$post->setDescription(‘текст до читать далее на всякие там темы разные!’);
$post->setPostStatus(‘publish’);
$post->setPostType(‘post’);
if ($poster->post($blog, $post)){ echo ‘ok’;}
‘ok’ всегда выводит, ошибок больше нет. Как понять в чем дело?
Ноябрь 22nd, 2011 at 12:13
Добрый день!
С утра сижу вычитываю блоги на тему постинга через XML-RPC.
Решил попробовать Ваш класс. Скачал его, залил на хостинг и на денвер (cURL & xmlrpc подключены).
Ни там, ни там не работает. Настройки стандартные из Вашего test.php, с моими данными для входа на сайт.
Помогите, пожалуйста, разобраться в чем проблема. Ошибок никаких не выдаёт. Написал Вам в аську, надеюсь что Вы ответите )
Октябрь 3rd, 2011 at 12:37
Конечно интересует, у меня на нём скрипты уже хрен знает сколько лет работают и будут работать, надеюсь, очень
Октябрь 3rd, 2011 at 11:44
Спасибо, поправил. Удивительно, что кого-то он еще интересует)
Октябрь 2nd, 2011 at 21:07
Кажется у вас ссылочка побилась на скачивание wp-poster в самом верху. Поправьте если можно =)
Сентябрь 19th, 2011 at 18:13
Спасибо за ваш труд все очень просто и доступно.
НО мне нужно идти дальш. Через сайт1 добавить пост на сайт2(это получилось благодоря вашему классу), НО появилась вторая задача получить способ на редактирование запощеных статей.