web-dev-qa-db-fra.com

Méthode recommandée pour ajouter des publications en bloc

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?

2
ServAce85

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 csv
  • fgetcsv - lit une seule ligne à partir d'un fichier CSV et la renvoie pour traitement

Option 1 - Chargement d'un fichier CSV

Utilisez 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.

Option 2 - WXR

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.

Lectures complémentaires

2
Tom J Nowell