it-swarm.com.de

XML-RPC: Kategorie zum Posten von Daten hinzufügen

Ich habe einen Dienst, der über XML-RPC täglich einen Beitrag in meinem Blog veröffentlicht. Es gibt mir keine Kontrolle darüber, in welche Kategorie es gehört, also möchte ich einfach einen Filter/Haken hinzufügen, um die gewünschte Kategorie in die eingehenden Post-Daten einzufügen:

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;  
}    

Ich denke so etwas in meinem functions.php würde funktionieren? Ich bin mir einfach nicht sicher, welches Format zum Hinzufügen einer Kategorie zu den Post-Daten richtig ist.

Vielleicht das?

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

Zuweisen von Beiträgen zu Taxonomiebegriffen in XML-RPC:

Nehmen wir an, Ihr Setup lautet:

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

und Sie möchten die neuen Posts vor Ort einem bestimmten Taxonomiebegriff zuordnenB.

Ab Standort B:

Dann können Sie auf der Seite Receiving siteBFolgendes versuchen:

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

wobei die category Taxonomie mit der ID 207 bereits auf der Site B vorhanden ist.

Es ist auch möglich, die anderen unterstützten Parameter von wp_insert_post() zu verwenden, z. B. post_category oder tags_input. In Ihrem Fall könnten Sie daher auch verwenden:

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

Ab Standort A:

Beachten Sie, dass die Parameter terms und terms_names von der Nutzlast der Abfrage wp.newPost auf der Site sendingAunterstützt werden.

Hier ist ein Beispiel für die SiteA, wie man Begriffe einer bestimmten Taxonomie hinzufügen könnte:

$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