| Пригодился класс? |
Скачать можно:
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.






Сентябрь 15th, 2009 at 11:38
zidar, это сложно. сейчас класс не предоставляет такой возможности. вы можете попробовать отслеживать это перед отсылкой, то есть в БД. вообще я пока не вижу эффективного способа проверять уникальность поста с помощью xml-rpc.
Сентябрь 15th, 2009 at 11:34
Роман, в новой версии это делается так:
$post->setAllowComments(‘closed’);
Сентябрь 15th, 2009 at 06:12
У миня всё работает…
require (‘wp_poster.php’);
require (‘ixr_client.php’);
$poster = wp_poster::getInstance();
$blog = new wp_blog(‘http://wordpress.ru/xmlrpc.php’, ‘admin’, ‘admin’, 0);
$post = new wp_post();
$post->setTitle(‘текст’);
$img=($blog->uploadFile(’1.jpg’, ’1.jpg’));
$post->setDescription(‘
тут какой то текст…’);
$post->setTextMore(‘тут текст который типо читать далее…’);
$post->setPostStatus(‘publish’);
$post->setPostType(»);
$poster->post($blog, $post);
Хотел просить, а как узнать если уже есть такой пост, что бы не постить ещё раз его?
Сентябрь 15th, 2009 at 02:24
ошбика локализована – СПАСИБО!!!!
Сентябрь 15th, 2009 at 02:16
setTitle(’232323′);
$post->setDescription(’2323′);
$post->setPostStatus(‘publish’);
$post->setPostType(»);
$poster->post($blog, $post);
?>
Весной ставил скрипт, все получилось.
СЕЙЧАС – нет!!!
ВЕРСИЯ WP 2.7.1
ВСе в WP подключил, логин и пароль, права на файлы скриптов – тоже.
ЧТО ДЕЛАТЬ, скрипт грузиться, но не постит
ПОМОГИТЕ , уже который час не могу вспомнить, что как я подключал в прошлый раз
Сентябрь 14th, 2009 at 12:13
CharnaD, что-то не получается закрыть комментарии к записи, Вы не проовали ?
Ставлю:
$post_structure['mt_allow_comments']= ‘closed’;
или
$post_structure['mt_allow_comments']= 0;
Но не работает. Это только у меня ?
Сентябрь 14th, 2009 at 00:03
Спасибо, разобрался сам … метод uploadFile
Сентябрь 13th, 2009 at 21:30
CharnaD, скажите, а есть возможность добавлять attachment к записи?
Сентябрь 8th, 2009 at 15:01
попробуйте
$post->setDate(strtotime(‘YYYY-MM-DD’));
Сентябрь 8th, 2009 at 12:10
Что то не работают не setDateGmt() не setDate().
Так же надо:
$post->setDate(‘YYYY-MM-DD’); ?