Come condividere lo stesso post su più siti in WordPress?
Puoi utilizzare la funzione switch_to_blog() per questo
$other_id = 1234 // l'id dell'altro blog dove salvare il post
switch_to_blog($other_id);
$my_post = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
);
// Inserisce il post nel database
wp_insert_post( $my_post );
restore_current_blog();
C'è una trappola se esegui questo codice sull'hook save_post, perché wp_insert_post chiama anche save_post e finisci in un loop infinito. Questo post su Stack Overflow fornisce una soluzione per questo problema.
Autore di Broadcast qui.
Visto che ho una notevole esperienza con il multiposting e tutti i problemi associati, ti suggerirei di lasciare che un plugin esperto si occupi della condivisione dei post.
Utilizzando l'API puoi trasmettere il post a tutti i blog in rete che desideri. Si occuperà di tutta la copia degli allegati (sì, gli allegati hanno URL e ID diversi su ogni blog) per te.
Ecco come trasmettere il post 123 a diversi blog:
ThreeWP_Broadcast()->api()->broadcast_children( 123, [ 10, 11, 12 ] );
Il codice sopra collegherà anche i post tra loro, quindi quando aggiornerai il post 123, tutti i post figli verranno aggiornati di conseguenza.
Posso invece di trasmettere un post pubblicato, inviare una bozza da pubblicare su altri siti web?
Hugo
Certo. In quel caso basta trasmettere la bozza. I post non devono avere uno stato particolare.
WhiteWindows
Capisco. Quindi il sito di destinazione riceverebbe la bozza nello stato in cui si trova?
Hugo