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






Май 20th, 2009 at 19:25
Да, ругается на эту строку. Убрать ‘=array()’ пробовал – не помогло. Проверял на 2-х разных хостингах, на первом версия PHP – 4.4.9, на втором – 5.2.9. Скачана последняя версия класса, для добавления постов использую Ваш пример.
Май 20th, 2009 at 17:41
У меня на 17й строке находится
private $posts = array();
Можете попробовать убрать ‘=array()’
Какая у вас версия PHP? Попробуйте скачать последнюю версию класса.
Май 20th, 2009 at 17:16
Никак не хочет работать класс, постоянно пишет ошибку:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /***/wp_poster.php on line 17
В чём может быть проблема?
Май 20th, 2009 at 16:16
Задавайте-задавайте)
Пока что можно сделать так: wp_blog->wp_deleteCategory(id), но это временно. Потом переделаю. Теги и посты пока удалять нельзя..
Автора можно задавать. wp_post->setAuthorId(id)
Май 20th, 2009 at 13:53
И еще вопрос. Можно ли как-то задавать имя автора? У меня столько вопросов…:)
Май 20th, 2009 at 11:06
Все отлично работает! А можно ли сделать удаление всех записей, категорий, меток? Если да, то как?
Май 20th, 2009 at 00:30
Пожалуйста) Для ответов я тут и есть)
После читать далее: wp_post->setTextMore(‘…’);
Категории: wp_post->setCategories()
учтите, что категории не создаются сами собой, для этого надо wp_poster->createCategories(wp_blog, array(‘кат1′, ‘кат2′))
Май 19th, 2009 at 22:36
«Текст до _читать далее» понятно, а как сделать «Текст После читать далее»? И как задавать категории? Как создавать понятно, а вот для нового поста прикрепить категорию как? Спасибо за Ваши ответы:)
Май 19th, 2009 at 17:52
Дату ставить нужно с помощью одной из 2х функций setDateGmt() или setDate() у объекта wp_post.
Май 19th, 2009 at 15:29
Добавьте, пожалуйста код для отложенной публикации.
Я так понимаю это $content_struct['date_created_gmt'] = чему?