J'ai ajouté un ensemble de types d'articles et de taxonomies personnalisés à l'aide du plug-in interface utilisateur de types d'articles personnalisés , et j'ai besoin d'entrer plusieurs centaines d'entrées (> 500).
Comment puis-je importer ces données en vrac? Par exemple. en tant que csv?
Il y a beaucoup d'options, mais ces fonctions sont vos amis:
wp_insert_post
- transmettez-lui des arguments et il créera une publication et, le cas échéant, renverra l'ID de publication.wp_set_object_terms
- transmettez-lui un identifiant de publication, une taxonomie personnalisée et les termes que vous souhaitez définir.fopen
- pour ouvrir un fichier csvfgetcsv
- lit une seule ligne à partir d'un fichier CSV et la renvoie pour traitementUtilisez les fonctions plus tôt, chargez un fichier csv, puis pour chaque ligne, retirez les valeurs, utilisez-les pour appeler wp_insert_post
et wp_set_object_terms
par exemple. CSV:
oranges,juicy and zesty,fruit
apples,juicy but not so zesty,fruit
cucumber,sandwiches go well with it,vegetable
PHP:
if (($handle = fopen("food.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$title = $data[0];
$content = $data[1];
$food_type = $data[2];
$post_id = wp_insert_post( array(
'post_title' => $title,
'post_content' => $content,
'post_type' => 'toms_food_post_type',
));
wp_set_object_terms( $post_id, $food_type, 'toms_food_taxonomy' );
}
fclose($handle);
}
J'ai basé ce qui précède sur un exemple de php.net
Vous voudrez peut-être une certaine logique pour ignorer la première ligne si vous avez des en-têtes, et une autre pour vérifier certaines erreurs, par exemple. si votre message n'a pas été créé, ou si les termes ont échoué, etc.
Le format du fichier d'importation est basé sur RSS. Donc, si vous pouvez générer un document RSS avec tout votre contenu et ajouter les champs supplémentaires utilisés par WordPress pour indiquer le type de publication et votre taxonomie personnalisée, vous pouvez utiliser l'importateur WordPress par défaut.
En passant, gérer vos publications une fois qu'elles sont dans WordPress, et la meilleure façon d'enregistrer votre type de publication sont des questions complètement différentes. Si vous avez 3 questions, créez-en 3 plutôt que de les regrouper. De cette façon, vous n'avez pas besoin de quelqu'un qui a les 3 réponses pour obtenir quelque chose.