Il existe des cas dans lesquels un plugin ou un thème doit créer un fichier php quelque part qui pourra l'inclure ultérieurement. Par exemple, un plugin captcha, ou une sorte de système de modèle comme twig / smarty (dans ma situation, c'est un moteur de modèle simple pour une collection de widgets).
Où devrait être créé ce fichier?
Le seul endroit wp-content/uploads/
auquel je peux penser est , mais cela ne sonne pas juste :)
Y a-t-il donc un endroit sûr où vous pouvez créer des fichiers, et ne vous inquiétez pas qu'ils soient supprimés lors de la mise à jour de WordPress / plugin / thème?
Une solution pourrait être de créer un thème / répertoire enfant dans le répertoire themes / plugins ...
la source
En travaillant sur un plugin Wordpress, je suis tombé sur votre question. J'ai également pensé à créer des fichiers temporaires pour mettre en cache certaines données que mon plugin créait. Cependant, en y réfléchissant un peu plus, cette approche me semble étrange car vous ne voulez 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.
J'ai donc cherché à nouveau et il semble que la solution valable pour ces problèmes soit l' API Wordpress Transients vous permettant de stocker des données dans la base de données avec une date d'expiration. Bien sûr, votre problème pourrait toujours nécessiter des fichiers mis en cache localement, par exemple s'ils sont trop volumineux pour la base de données, mais au moins je suggère de jeter un œil à cette option également :-)
la source
Je ne peux penser qu'à 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 se déplacer vers un nouveau site. L'autre est un plugin de plan de site.
Si votre plugin contient des fichiers de modèle que l'utilisateur peut personnaliser, vous devez donner à l'utilisateur la possibilité de déplacer le fichier personnalisé vers le répertoire de thème actuel afin que lorsque votre plugin soit mis à jour, il ne sera pas remplacé. Vous pouvez essayer de charger les fichiers à partir du répertoire de thème d'abord, puis revenir à votre répertoire de plugin.
Gravity Forms stocke les fichiers téléchargés des formulaires 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.
la source
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 vraiment être stockés dans la base de données.
la source
eval()
ça? aucun moyen ...eval()
?Je suggère toujours un chargeur automatique compatible PSR-0 et un dossier de bibliothèque qui fonctionne.
Certains utilisateurs de WP pourraient vous tirer dessus, mais peut-être que vous n'êtes pas concentré sur ces utilisateurs, cela peut donc être une option. Surtout si vous obtenez de plus en plus de bibliothèques spécifiques aux fournisseurs.
la source