Wordpress XML-RPC发布到特定类别

时间:2012-08-23 08:28:48

标签: php wordpress xml-rpc

我已经尝试了很长时间,但它仍然只发布为“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 );
}

2 个答案:

答案 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_datepost_date_gmt属性传递它:

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

希望将来帮助某人!