Wordpress Post через XMLRPC - Добавить несколько категорий - PullRequest
3 голосов
/ 10 февраля 2012

Я пытаюсь добавить несколько категорий в сообщение Wordpress (3.3.1) через XMLRPC.

Это мой код ( отлично работает , пожалуйста, прочитайте ниже):

<?
error_reporting(E_ALL);
ini_set('display_errors', '1');


require_once("IXR_Library.php.inc"); // http://www.hurricanesoftwares.com/php_uploads/IXR_Library.txt

$client->debug = true; //Set it to false in Production Environment

$title="Blog Title5"; // $title variable will insert your blog title 
$body = "teste xmlrpc <a href='http://www.teste.com'>teste.com</a>";

$category="DVDSCR, Telesync"; // Comma seperated pre existing categories. Ensure that these categories exists in your blog.
$keywords="keyword1, keyword2, keyword3";

$customfields=array('key'=>'Author-bio', 'value'=>'Autor Bio Here'); // Insert your custom values like this in Key, Value format


    $title = htmlentities($title,ENT_NOQUOTES,$encoding);
    $keywords = htmlentities($keywords,ENT_NOQUOTES,$encoding);

    $content = array(
        'title'=>$title,
        'description'=>$body,
        'mt_allow_comments'=>0,  // 1 to allow comments
        'mt_allow_pings'=>0,  // 1 to allow trackbacks
        'post_type'=>'post',
        'mt_keywords'=>$keywords,
        'categories'=>array($category),
        'custom_fields' =>  array($customfields)


    );

// Create the client object
$client = new IXR_Client('http://127.0.0.1/xmlrpc.php');

 $username = "admin"; 
 $password = "password"; 
 $params = array(0,$username,$password,$content,true); // Last parameter is 'true' which means post immideately, to save as draft set it as 'false'

// Run a query for PHP
if (!$client->query('metaWeblog.newPost', $params)) {
    die('Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage());
}
else
    echo "Article Posted Successfully";

?>

Ошибка:
Если я пытаюсь добавить более одной категории, для категории сообщений устанавливается категория без категории (по умолчанию).

Я уже пробовал это:

$category = "telesync, dvdscr";

и это:

$category =array('telesync','dvdscr');

Как я могу добавить более одной категории к сообщению? Спасибо всем!

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Я нашел ответ после тестирования некоторых других опций, таких как:

'categories'=>array("telesync", "1080p"),

Переменная $ content будет выглядеть следующим образом:

$content = array(
    'title'=>$title,
    'description'=>$body,
    'mt_allow_comments'=>0,  // 1 to allow comments
    'mt_allow_pings'=>0,  // 1 to allow trackbacks
    'post_type'=>'post',
    'mt_keywords'=>$keywords,
    'categories'=>array("telesync", "1080p"), // I've typed the categories directly here.
    'custom_fields' =>  array($customfields)


);
0 голосов
/ 26 февраля 2016

Я знаю, что это немного поздно, но для тех, кто сталкивается с той же проблемой, первое предположение было лучшим решением (вместо того, чтобы вводить категории напрямую, лучше передавать их как переменные):

$category =array('telesync','dvdscr');

Нам просто нужно удалить 'array' на categories=>array($category), так как мы уже объявили $category как массив. Так что вместо:

'categories'=>array($category),

использование:

'categories'=>$category,

и это должно работать.

...