Ich habe einen Dienst, der einen täglichen Beitrag über XML-RPC in meinen Blog schreibt. Es bietet mir keine Kontrolle darüber, in welche Kategorie es geht, also möchte ich einfach einen Filter / Hook hinzufügen, um die Kategorie, die ich möchte, in die eingehenden Postdaten 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 meiner functions.php
würde funktionieren? Ich bin einfach nicht sicher, das richtige Format, um eine Kategorie zu den Post-Daten hinzuzufügen?
Vielleicht das?
$post_data['terms'] = array('category' => array(207))
Nehmen wir an, Ihr Setup ist:
xml-rpc wp.newPost (sender) site A -------------> site B (receiver)
und Sie möchten die neuen Beiträge einer gegebenen Taxonomie-Terminologie vor Ort zuweisen. B.
Dann können Sie Folgendes auf der Empfangsseite B versuchen:
$post_data['tax_input'] = array( 'category' => array( 207 ) );
wo die category
mit der ID 207
bereits auf der Site B
.
Es ist auch möglich, die anderen unterstützten Parameter von wp_insert_post()
, wie post_category
oder tags_input
. In Ihrem Fall könnten Sie daher auch verwenden:
$post_data['post_category'] = array( 207 );
Beachten Sie, dass die Parameter terms
und terms_names
von der Payload der wp.newPost
Abfrage von der sending
Site A unterstützt werden .
Hier ist ein Beispiel für die Site A , wie man Terme einer gegebenen Taxonomie hinzufügen kann:
$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' ), ), ) ) );