web-dev-qa-db-ja.com

XML-RPC:投稿データにカテゴリを追加

私は毎日XML-RPC経由で私のブログに投稿するサービスを持っています。それは私がそれがどのカテゴリーに入るのかについて私にはいかなるコントロールも提供しないので私は入ってくる投稿データに欲しいカテゴリーを加えるためにただフィルター/フックを加えたいです:

add_action ('xmlrpc_call', 'check_xmlrpc_call' );

function check_xmlrpc_call( $method )
{
    if( 'wp.newPost' === $method )
    {
        add_filter( 'xmlrpc_wp_insert_post_data', 'add_xmlrpc_category_post_data' );
    }
}

function add_xmlrpc_category_post_data( $post_data )
{
    //not sure how to add category to the post data :(

    return $post_data;  
}    

私のfunctions.phpでこのようなものがうまくいくと思いますか?投稿データにカテゴリを追加するための正しい形式がわからないのですが。

たぶんこれ?

$post_data['terms'] = array('category' => array(207))
4
user57040

XML-RPCの分類用語への投稿の割り当て

設定が次のようになっているとしましょう。

                                     xml-rpc
                                    wp.newPost
                  (sender) site A -------------> site B (receiver)

そして、あなたは新しい投稿をsite _ b _ 上の与えられた分類用語に割り当てたいと思います。

サイトBから:

その後、 受け取り site _ b _ で次のことを試すことができます。

$post_data['tax_input'] = array( 'category' => array( 207 ) );

iDが207category分類法は、既にサイトBに存在します。

post_categorytags_inputのような他のサポートされているwp_insert_post()のパラメータを使うことも可能です。あなたの場合は、それゆえにあなたも使用することができます:

$post_data['post_category'] = array( 207 );

サイトAから:

termsおよびterms_namesパラメータは、sending site _ a _ からのwp.newPostクエリのペイロードでサポートされていることに注意してください。

これは、サイト _ a _ の例です。与えられた分類法の用語を追加する方法は次のとおりです。

$result = $client->query( 
    'wp.newPost', 
    array(
        $blog_id,
        $user,
        $password,
        array(
            'post_status'  => 'draft',
            'post_title'   => 'Test',
            'post_content' => 'We are testing XML-RPC!',
            'terms_names'  => array( 
                'post_tag' => array( 'xml-rpc' ), 
                'category' => array( 'wordpress-testing' ),
            ),
        )
    )
);
1
birgire