| Пригодился класс? |
Скачать можно:
Wp-poster (13.8 KiB)
Вопросы:
- Что это такое?
- Зачем это надо?
- Как мне отправить пост на блог?
- Что значит '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.






Июнь 11th, 2009 at 14:37
Здравствуйте пробовал постить с помощью класса и на денвере и на хосте. Ошибок никаких не выдает но и пост не добавляеться удаленая публикация – включена.
Вот код:
setTitle(‘Заголовок поста’);
$post->setDescription(‘Текст до _читать далее_’);
$post->setPostStatus(‘publish’);
$post->setTextMore(‘Текст после _читать далее_’);
$poster->post($blog, $post);
?>
Июнь 4th, 2009 at 21:49
Алексей, насколько я помню, создание пользователей не реализовано в вордпрессе в самом xml-rpc.
Июнь 4th, 2009 at 21:48
Serg, пишите
<?php вместо <?
Июнь 4th, 2009 at 15:47
Ой, блог похавал пхп код..
Вот ссылка на содержание файла test.php
new.krasfun.ru/uploader/test.txt
Июнь 4th, 2009 at 15:44
День добрый. Ваша идея мне понравилась, скачал запускаю и вот что мне выдаёт
XML error: Invalid document end at line 1
Далее код.
setTitle(‘POSt name’);
$post->setDescription(‘[media id=223 width=420 height=380]‘);
$post->setPostStatus(‘publish’);
//$post->setPostType(»);
$post->setCategories(‘Ролики,Ролики’);
//var_dump($blog->uploadFile(’1.jpg’, ’1.jpg’));
$r = $poster->post($blog, $post);
?>
Что я делаю не так?
Май 31st, 2009 at 12:15
Кстати, получилось на денвере запустить постер.
Нужно установить расширение
и в /usr/local/php5/php.ini
убрать точку с запятов в строке «;extension=php_curl.dll»
Май 29th, 2009 at 09:11
Хотелось бы такую штуку, с пользователями:
- отправляем логин и пароль
– если такой логин не существует, создаем нового пользователя с этим логином
– если логин существует постим от его имени
– если логин существует. а пароль неверен возвращаем ошибку
Это не пожелание, а так, идея. Попробую сделать. Когда получится могу поделиться ))
Май 24th, 2009 at 19:09
@Torn, $ перед wp_blog поставьте. Категории так же можно задавать в массиве.
Май 24th, 2009 at 18:12
Пожалуйста, обращайтесь. Следите за обновлениями
Май 24th, 2009 at 18:10
Наконец-то у меня всё заработало! Проблема была в настроках хостинга, на котором находился блог. Создал файл .htaccess со строкой «SecFilterEngine Off» и всё пошло. CharnaD, огромное Вам спасибо за помощь!