web-dev-qa-db-fra.com

créer par programme des publications à partir de fichiers d'un dossier

J'ai un dossier nommé 'pdf' (avec environ 1000 fichiers pdf) dans mon répertoire de téléchargement, je voudrais créer un post pour chaque fichier du dossier.

Je n'essaie pas d'importer le contenu du fichier pdf, mais simplement de créer une publication pour chaque fichier de ce dossier.

Ce que j'espérais réaliser:

les messages obtiendraient le titre du nom de fichier.

les articles se verraient attribuer une seule catégorie/étiquette spécifique pour tous les articles.

la publication obtiendrait la date de publication à partir de la date de création du fichier.

Je suis nouveau sur php, wordpress et la programmation en général, j'ai une bonne compréhension de la syntaxe, des boucles et des fonctions. J'espérais que quelqu'un pourrait me donner un coup de pouce dans la bonne direction quant à ce que les fonctions wordpress/boucles PHP seraient utiles pour y parvenir. Toutes les pensées, les conseils, les informations seraient d'une grande aide.

Merci beaucoup pour votre temps et votre aide, Sam

1
Sameer Ali

Au début, vous devez utiliser readdir() dans une boucle while pour obtenir tous les fichiers pdf. Vous devriez regarder les exemples sur la page readdir pour savoir comment l’utiliser. Dans la boucle, vous devez ajouter les messages avec les fichiers pdf. Normalement, vous utiliseriez wp_insert_attachment() pour ajouter des fichiers sur votre blog. Mais si vous voulez un seul article pour chaque pdf qui est affiché sur votre page d'accueil, vous devez utiliser wp_insert_post() , où l'argument "fichier" contient le chemin d'accès à le fichier. Après avoir ajouté le message (mais aussi dans la boucle), vous devez utiliser l'id, qui provient de wp_insert_post(), vous devez ajouter la catégorie à l'aide de wp_set_post_categories .

Je pourrais vous fournir le code complet pour effectuer cette tâche, mais à mon avis, il est préférable de l'apprendre en écrivant le code vous-même. Si vous avez d'autres questions, n'hésitez pas à demander.

2
ahendwh2