2

我已经尝试了很长时间,但它仍然只发布为“未分类”,在文档中声明使用整数值作为类别 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 );
}
4

2 回答 2

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 不会仅返回一个错误的布尔值。让我知道您是否有任何插入类别的运气以及您是否设法收到 POST ID。

于 2012-09-19T10:53:13.013 回答
0

谢谢,这是一个救生员!如果您需要为您的帖子提供标签,您可以使用tags_input属性将它们传递到数组中,如下所示:

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

如果需要传入特定的时间戳,应该使用如下格式

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

post_date并使用orpost_date_gmt属性传递它:

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

希望它可以帮助将来的人!

于 2013-02-20T18:51:43.230 回答