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))
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.
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 );
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 sending
A.
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' ),
),
)
)
);