Nous développons WordPress avec plusieurs sites. Nous devons partager certains messages sur plusieurs sites. Nous devons enregistrer la publication dans plusieurs sites en un seul clic.
J'ai effectué une recherche sur Google, mais je ne peux pas obtenir de tutoriel à ce sujet.
Vous pouvez utiliser la fonction switch_to_blog()
pour cela
$other_id = 1234 // the id of the other blog to save the post to
switch_to_blog($other_id);
$my_post = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => $post_author,
);
// Insert the post into the database
wp_insert_post( $my_post );
restore_current_blog();
Il y a un piège si vous exécutez ce code sur le hook save_post
, car wp_insert_post
appelle également save_post
et vous vous retrouvez dans une boucle infinie. Ce post sur Stack Overflow donne une solution à cela.
Auteur de Broadcast here.
Étant donné que j'ai beaucoup d'expérience avec le multipostage et tous ses problèmes, je vous suggère de laisser un plugin expérimenté s'occuper du post-partage.
En utilisant API , vous pouvez diffuser le message vers le nombre de blogs réseau que vous souhaitez. Il se chargera de toute la copie des pièces jointes (oui, les pièces jointes ont des URL et des ID différents sur chaque blog) pour vous.
Voici comment diffuser l'article 123 sur plusieurs blogs:
ThreeWP_Broadcast()->api()->broadcast_children( 123, [ 10, 11, 12 ] );
Ce qui précède reliera également les publications entre elles. Ainsi, lorsque vous mettrez à jour la publication 123, tous les enfants seront également mis à jour.