Cum să partajezi același articol pe mai multe site-uri în WordPress?
Poți folosi funcția switch_to_blog()
pentru aceasta
$other_id = 1234 // ID-ul celuilalt blog unde se va salva postarea
switch_to_blog($other_id);
$my_post = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
);
// Inserează postarea în baza de date
wp_insert_post( $my_post );
restore_current_blog();
Există o capcană dacă execuți acest cod pe hook-ul save_post
, deoarece wp_insert_post
apelează și el save_post
și vei ajunge într-o buclă infinită. Acest post pe Stack Overflow oferă o soluție pentru această problemă.

Autorul Broadcast aici.
Având în vedere că am destulă experiență cu multipostarea și toate problemele asociate acesteia, v-aș sugera să lăsați un plugin experimentat să se ocupe de partajarea postărilor.
Folosind API-ul, puteți transmite postarea către oricâte bloguri din rețea doriți. Se va ocupa de copierea tuturor atașamentelor (da, atașamentele au URL-uri și ID-uri diferite pe fiecare blog) pentru dvs.
Iată cum puteți transmite postarea 123 către mai multe bloguri:
ThreeWP_Broadcast()->api()->broadcast_children( 123, [ 10, 11, 12 ] );
Codul de mai sus va lega și postările între ele, astfel încât atunci când actualizați postarea 123, toate copiile acesteia vor fi actualizate de asemenea.

Pot să trimit un draft pentru publicare pe alte site-uri în loc să transmit un articol deja publicat?

Sigur. În acest caz, pur și simplu transmite draftul. Postările nu trebuie să aibă un anumit status.

Am înțeles. Deci site-ul destinație va primi draftul în orice status ar fi acesta?
