web-dev-qa-db-fra.com

XML-RPC: Ajouter une catégorie pour publier des données

J'ai un service qui met quotidiennement un message sur mon blog via XML-RPC. Il ne me permet pas de contrôler la catégorie dans laquelle il se trouve. Je souhaite simplement ajouter un filtre/raccord pour ajouter la catégorie souhaitée aux données de publication entrantes:

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

Je pense que quelque chose comme ceci dans mon functions.php fonctionnerait? Je ne suis pas sûr du format correct pour ajouter une catégorie aux données de publication?

Peut être ça?

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

Affectation de publications à des termes de taxonomie dans XML-RPC:

Supposons que votre configuration est:

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

et vous souhaitez attribuer les nouvelles publications à une taxonomie donnée sur le site B.

Du site B:

Ensuite, vous pouvez essayer ce qui suit, sur le receive site B:

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

où la taxonomie category avec l'ID 207 existe déjà sur le site B.

Il est également possible d'utiliser les autres paramètres pris en charge de wp_insert_post(), tels que post_category ou tags_input. Dans votre cas, vous pouvez donc également utiliser:

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

Du site A:

Notez que les paramètres terms et terms_names sont pris en charge par la charge utile de la requête wp.newPost, à partir du site sendingA.

Voici un exemple pour le site A, comment ajouter des termes d'une taxonomie donnée:

$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