我已经尝试了很长时间,但它仍然只发布为“Uncategorized”, 在文档中,它声明使用整数值作为类别ID,但这不起作用。我也尝试过编写类别名称,并以小写形式输入slug。根据文档我正在做的一切正确,但它仍然无法正常工作! wp.newPost因为它使用了wp_insert_post()。
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 );
}
答案 0 :(得分:6)
嘿,我最近开始使用新的API。
您应该在XML-RPC请求中使用terms_names参数,如新文档中所述:
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方法存在一个问题,但Post ID不会返回false布尔值。如果您在插入类别方面有任何好运,并且您设法收到POST ID,请告诉我。
答案 1 :(得分:0)
谢谢,这是一个救生员!如果您需要为帖子提供标签,可以使用tags_input
属性将其传递到数组中,如下所示:
$content['tags_input'] = "action, adventure, thriller";
如果您需要传递特定时间戳,则应使用以下格式
D, d M Y H:i:s +0000
并使用post_date
或post_date_gmt
属性传递它:
$content['post_date_gmt | post_date'] = date("D, d M Y H:i:s +0000", strtotime($your_specific_date_and_time));
希望将来帮助某人!