web-dev-qa-db-fra.com

Copier des articles d'un blog à un autre dans un environnement multisite

Je crée un plugin pour la page post.php où l’utilisateur peut sélectionner (un ou plusieurs) blogs et copier le contenu, le titre, l’auteur, les catégories de l’article, tout dans les blogs sélectionnés. Le message copié serait l’enfant du message original et le message original serait désormais le message parent.

Je souhaite savoir qu’il existe une fonction WP pouvant directement s’occuper de la copie de messages dans d’autres blogs multisites ou quelle fonction serait la meilleure pour le faire.

1
Sumit

Pour copier un article d'un blog à un autre, vous pouvez faire quelque chose comme ceci:

function copy_post_to_blog($post_id, $target_blog_id) {

   $post = get_post($post_id, ARRAY_A); // get the original post

   $post['ID'] = ''; // empty id field, to tell wordpress that this will be a new post

   switch_to_blog($target_blog_id); // switch to target blog

   $inserted_post_id = wp_insert_post($post); // insert the post

   restore_current_blog(); // return to original blog
}
5
dannepanne

Votre solution est bonne, mais elle ne couvre pas les taxonomies et les méta-publications, donc je vous recommande de vérifier cette solution https://rudrastyh.com/wordpress-multisite/move-posts-between -blogs.html

Donc, tout d’abord, nous obtenons toutes les données de publication get_post($post_id, ARRAY_A); toutes les catégories de publication et les méta de publication, puis nous passons à un blog correct avec switch_to_blog($target_blog_id);, nous créons une nouvelle publication et mettons à jour toutes ses données + conditions + méta de publication. Alors restore_current_blog();

0
Misha Rudrastyh