2012-08-23 48 views
2

我一直在嘗試很長時間,但它只發布爲「未分類」, 在文檔中聲明使用整數值作爲類別ID,工作。我也試着寫下類別名稱,因爲它是小寫字母,也輸入slu。。根據文件,我做的都是正確的,但它仍然不起作用! wp.newPost並且因爲它使用wp_insert_post()WordPress的XML-RPC發佈到一個特定的類別

public function create_post($title, $body) 
{ 
    $title = htmlentities($title, ENT_NOQUOTES, 'UTF-8'); 
    $content = array(
     'post_category' => array(18), // my category id 
     'post_type' => 'post', 
     'post_status' => 'pending', 
     'post_title' => $title, 
     'post_content' => $body, 
     'comment_status' => 'closed', 
    ); 

    $params = array(0, $this->username, $this->password, $content); 
    return $this->send_request('wp.newPost', $params); 
} 

回答

6

嘿,我最近開始使用新的API。

您應該使用terms_names參數在你的XML-RPC請求,在新文檔中指出:

http://codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.newPost

例子:

你的代碼應該改成這個樣子。

public function create_post($title, $body) 
{ 
    $title = htmlentities($title, ENT_NOQUOTES, 'UTF-8'); 
    $content = array(
     'post_type' => 'post', 
     'post_status' => 'pending', 
     'post_title' => $title, 
     'post_content' => $body, 
     'terms' => array('category' => array(18)), 
     'comment_status' => 'closed', 
    ); 

    $params = array(0, $this->username, $this->password, $content); 
    return $this->send_request('wp.newPost', $params); 
} 

我有這個API方法的一個問題,但是,郵政ID不返回一個假的布爾值。讓我知道如果您有插入類別的好運氣,並且您設法接收POST ID。

+0

非常棒,完全像我想要的那樣運行。是的,我確實得到了一個Post ID,因爲它通過XML與WP進行通信,響應格式相同。 '<?XML版本= 「1.0」?> ' – Alexxandar

+0

我沒有工作對我來說,18是類別ID,如果我沒有錯? – 2013-11-05 18:59:47

0

謝謝,這是一個救星!如果您需要爲您的文章提供的標籤,你可以使用tags_input財產傳給他們的陣列,像這樣:

$content['tags_input'] = "action, adventure, thriller"; 

如果你需要在一個特定的時間戳通,你應該使用以下格式

D, d M Y H:i:s +0000 

,並使用post_datepost_date_gmt屬性傳遞:

$content['post_date_gmt | post_date'] = date("D, d M Y H:i:s +0000", strtotime($your_specific_date_and_time)); 

希望它可以幫助別人的未來!

相關問題