Existe-t-il un moyen d’importer par programmation des pages wordpress dans wordpress ?
J’essaie de créer cette fonctionnalité dans mon plugin wordpress. Disons que j’ai un nombre défini de pages qui ne changeront jamais et que je souhaite les importer automatiquement sur chaque site wordpress que j’ai configuré sans avoir à accéder manuellement au premier site, exporter le fichier xml contenant les pages puis l’importer dans le nouveau placer. Des pensées à ce sujet?
Merci
Solution n°1 trouvée
Vous pouvez stocker les pages dans un tableau, puis les insérer automatiquement lorsque votre plugin est activé. Je vous recommande de stocker une meta_key pour chaque page qui vous permet également de savoir qu’elle a déjà été insérée afin que vous ne les créiez pas à chaque fois que le plugin est activé et désactivé. Vous pouvez le mettre dans le fichier principal de votre plugin. Assurez-vous de remplacer les pages numérotées et les slugs par les noms de page réels et de remplacer « my_plugin » par l’espace de noms de votre plugin.
<?php
function create_my_plugin_pages() {
$pages = array(
'Page 1' => 'page-1', // Use slugs to create meta-keys
'Page 2' => 'page-2',
'Page 3' => 'page-3'
);
foreach( $pages as $title => $slug ) {
$meta_key = 'my-plugin_'.$slug;
// Check that the page wasn't already created
$existing = get_posts(array(
'post_type' => 'page',
'meta_query' => array(
array(
'key' => $meta_key,
'value' => '1'
)
)
));
// Create page if it doesn't exist
if ( !count($existing) ) {
$new_page = wp_insert_post(array(
'post_title' => $title,
'post_status' => 'publish'
));
add_post_meta($new_page,$meta_key,'1');
}
}
}
register_activation_hook( __FILE__, 'create_my_plugin_pages' );
?>
Solution n°2 trouvée
Si vous savez comment parcourir votre fichier XML et que votre fichier XML est accessible sur l’autre site, vous pouvez parcourir le code suivant :-
// Create post object
$my_post = array(
'post_title' => wp_strip_all_tags( $post_title ),
'post_content' => $post_content,
'post_status' => 'publish',
'post_author' => 1,
'post_category' => $cat
);
// Insert the post into the database
wp_insert_post( $my_post );
Vous auriez besoin d’initier ce code lors de l’installation de votre plugin.
Solution n°3 trouvée
- Vous pouvez exporter vos pages via l’outil d’exportation WordPress par défaut. Cela se traduira par un fichier .xml (WXR).
-
Après cela, vous pouvez importer les pages via l’outil WP-CLI sur chaque site, avec la commande suivante :
$ wp import file-name.xml
WXR signifie WordPress eXtended RSS.
0 commentaire