• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Как постить в WPMU через XML-RPC на PHP?

Статус
В этой теме нельзя размещать новые ответы.

roddik

Колбаска
Регистрация
26 Янв 2007
Сообщения
346
Реакции
292
Привет! В общем сабж... Спасибо:) WPMU 1.3.5
 
В вордпресс можно публиковать записи удаленно, с помощью XMLRPC
например с помощью такой функции, которая использует класс class-IXR.php из поставки самого ворпреса.
PHP:
function new_post($domain,$login,$pass,$title,$category,$content){
$client = new IXR_Client("http://".$domain.'/xmlrpc.php');
$content_struct['title'] = $title;
$content_struct['description'] = $content;
$content_struct['categories'] = array($category);
$response=$client->query("metaWeblog.newPost", '0', $login, $pass, $content_struct, '1');
if (!($response)){
Return False;
//die('xml - '.$client->xml.',Ошибка - '.$client->getErrorCode().' : '.$client->getErrorMessage());
}else{
Return True;
}
}
Судя по коду файла xmlrpc.php, есть возможность создавать удаленно и категории.
PHP:
function wp_xmlrpc_server() {
        $this->methods = array(
            // WordPress API
...
...
...
            'wp.newCategory'        => 'this:wp_newCategory',
...
...
...
По примеру вышеприведенной функции написал и для создания категорий
PHP:
function new_category($domain,$blog_id,$login,$pass,$category){
$client = new IXR_Client("http://".$domain.'/xmlrpc.php');
$content_struct['name'] = $category;
$response=$client->query("wp.newCategory", $blog_id, $login, $pass, $content_struct);
if (!($response)){
Return $client->message->message;
}else{
Return True;
}
}
вот метод wp.newCategory из xmlrpc
PHP:
    function wp_newCategory($args) {
        $this->escape($args);
 
        $blog_id                = (int) $args[0];
        $username                = $args[1];
        $password                = $args[2];
        $category                = $args[3];
 
        if(!$this->login_pass_ok($username, $password)) {
            return($this->error);
        }
 
        do_action('xmlrpc_call', 'wp.newCategory');
 
        // Set the user context and make sure they are
        // allowed to add a category.
        set_current_user(0, $username);
        if(!current_user_can("manage_categories")) {
            return(new IXR_Error(401, __("Sorry, you do not have the right to add a category.")));
        }
 
        // If no slug was provided make it empty so that
        // WordPress will generate one.
        if(empty($category["slug"])) {
            $category["slug"] = "";
        }
 
        // If no parent_id was provided make it empty
        // so that it will be a top level page (no parent).
        if ( !isset($category["parent_id"]) )
            $category["parent_id"] = "";
 
        // If no description was provided make it empty.
        if(empty($category["description"])) {
            $category["description"] = "";
        }
 
        $new_category = array(
            "cat_name"                => $category["name"],
            "category_nicename"        => $category["slug"],
            "category_parent"        => $category["parent_id"],
            "category_description"    => $category["description"]
        );
 
        $cat_id = wp_insert_category($new_category);
        if(!$cat_id) {
            return(new IXR_Error(500, __("Sorry, the new category failed.")));
        }
 
        return($cat_id);
    }

Однако написанная мной функция new_category, вызванная так
PHP:
$cat = new_category("domen.ru","0","login","pass",$category);

Возвращает ошибку
faultCode 500 faultString Извините, новая рубрика не создана.

Посоветуйте плз, кто знает как правильно на пхп создавать категории в вордпресс с помощью xmlrpc
 
У меня категории так получались :)
PHP:
	foreach($tags_Category as $val)	{
		if($val) {
		$value = array("name" =>trim($val));
		$x = new xmlrpcmsg("wp.newCategory",
		array(php_xmlrpc_encode("1"),
		php_xmlrpc_encode($login),			 // config.php
		php_xmlrpc_encode($passwd),
		php_xmlrpc_encode($value)));

		$client->return_type = 'phpvals';
		$r =$client->send($x);

			if ($r->errno=="0"){
		//	echo "<p class=categories ><br><font color=green>Successfully Create Categories  <b>".$val."</b></font><br><br></p>";
			}else {
		//	echo "<p class=error ><br><font color=red>There are some error Create Categories <b>".$val."</b></font><br><br></p>";
			}
		}
	}

P.S. На блогспот как метки постить, кто подскажет?
 
У меня категории так получались :)
PHP:
    foreach($tags_Category as $val)    {
        if($val) {
        $value = array("name" =>trim($val));
        $x = new xmlrpcmsg("wp.newCategory",
        array(php_xmlrpc_encode("1"),
        php_xmlrpc_encode($login),             // config.php
        php_xmlrpc_encode($passwd),
        php_xmlrpc_encode($value)));

        $client->return_type = 'phpvals';
        $r =$client->send($x);

            if ($r->errno=="0"){
        //    echo "<p class=categories ><br><font color=green>Successfully Create Categories  <b>".$val."</b></font><br><br></p>";
            }else {
        //    echo "<p class=error ><br><font color=red>There are some error Create Categories <b>".$val."</b></font><br><br></p>";
            }
        }
    }
P.S. На блогспот как метки постить, кто подскажет?
на блогспот посмотри в блогоферме
в xml запрос надо добавить
<category scheme='http://www.blogger.com/atom/ns#' term='TEST LABEL' />
 
давно искал все что здесь изложено, влом было рыть и писать =)

не подскажите, можно ли использовать скрипт удаленного постинга через xmlrpc на нескольких сайтах под управлением ВП, которые висят на разных хостингах и доменах, кто-нить делал подобное?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху