Où stocker les fichiers PHP créés par plugin / themes

11

Il existe des cas dans lesquels un plugin ou un thème doit créer un fichier php quelque part qui puisse l’inclure ultérieurement. Par exemple, un plugin captcha, ou une sorte de système de template tel que twig / smarty (dans mon cas, c’est un moteur de template simple pour une collection de widgets).

Où ce fichier devrait-il être créé?

Le seul endroit auquel je peux penser est wp-content/uploads/ , mais ça ne sonne pas juste:)

Y a-t-il un endroit sûr où vous pouvez créer des fichiers et ne vous inquiétez pas de leur suppression sur WordPress / plugin / theme update?

Une solution pourrait être de créer un répertoire / thème enfant dans le répertoire themes / plugins ...

    
posée onetrickpony 25.04.2011 - 19:40

6 réponses

8

L'emplacement approprié à mon humble avis serait un dossier personnalisé créé dans le répertoire wp-content. A lire avant de créer des fichiers: enlace

    
réponse donnée mfields 25.04.2011 - 19:42
5

Vous ne pouvez pas vous fier aux accès en écriture dans le répertoire du plug-in ou du thème. wp_upload_dir () est le seul répertoire possible.
Mais , je doute vraiment qu'il soit nécessaire de stocker les informations dans un nouveau fichier. Si le modèle est créé par l'utilisateur, stockez-le dans une option et analysez le contenu avec vos fonctions de plug-in habituelles (par exemple, en remplaçant les espaces réservés par strtr() ).

    
réponse donnée fuxia 25.04.2011 - 19:48
5

Alors que je travaillais sur un plugin Wordpress, je suis tombé sur votre question. J'ai aussi d'abord pensé à créer des fichiers temporaires pour mettre en cache certaines données créées par mon plugin. Cependant, en y réfléchissant un peu plus, cette approche me semble étrange, car vous ne souhaitez pas que des données temporaires traînent sur un serveur si vous essayez de les faire évoluer à l'aide d'un cluster de serveurs.

Alors j’ai cherché à nouveau et il semble que la solution valable pour de tels problèmes soit l’ API Wordpress Transients vous permettant de stocker des données dans le base de données avec une date d'expiration. Bien entendu, votre problème pourrait toujours nécessiter des fichiers mis en cache localement, par exemple. si elles sont trop volumineuses pour la base de données, mais au moins, je suggère de jeter également un coup d'œil à cette option: -)

    
réponse donnée Sebi 10.11.2013 - 21:39
3

Je ne peux que penser aux quelques bonnes raisons pour lesquelles un plugin aurait besoin de créer un fichier. L'une consiste à sauvegarder des options compliquées que l'utilisateur peut exporter et télécharger pour passer à un nouveau site. L'autre est un plugin sitemap.

Si votre plug-in contient des modèles de fichiers que l'utilisateur peut personnaliser, vous devez lui donner la possibilité de déplacer le fichier personnalisé dans le répertoire du thème en cours pour qu'il ne soit pas écrasé lors de la mise à jour de votre plug-in. Vous pouvez essayer de charger les fichiers à partir du répertoire theme en premier lieu, puis revenir à votre répertoire plugin.

Gravity Forms stocke les fichiers des formulaires téléchargés dans son propre dossier, à l’intérieur des téléchargements. W3 Total Cache utilise wp-content, la redirection de connexion utilise la méthode décrite ci-dessus.

    
réponse donnée Chris_O 27.04.2011 - 12:28
1

Si vous devez créer des fichiers (tels que des fichiers temporaires pour un plugin CAPTCHA), vous devez absolument utiliser \wp-content\uploads\ (ou un répertoire personnalisé tel que \wp-content\plugin-slug-files\ ).

La plupart des autres codes personnalisés doivent être réellement stockés dans la base de données.

    
réponse donnée Chip Bennett 25.04.2011 - 19:43
1

Je suggère toujours un chargeur automatique compatible PSR-0 et un dossier de bibliothèque qui fonctionne simplement.

Certains utilisateurs de WP pourraient vous filmer à ce moment-là, mais peut-être n'êtes-vous pas concentré sur ces utilisateurs, cela peut donc être une option. Surtout si vous avez de plus en plus de bibliothèques spécifiques à un fournisseur.

    
réponse donnée hakre 29.04.2011 - 16:58

Lire d'autres questions sur les étiquettes