Es gibt Fälle, in denen ein Plugin oder Theme irgendwo eine PHP-Datei erstellen muss, die sie später enthalten kann. Zum Beispiel ein Captcha-Plugin oder eine Art Template-System wie twig / smarty (In meiner Situation ist es eine einfache Template-Engine für eine Sammlung von Widgets).
Wo soll diese Datei erstellt werden?
Der einzige Ort, an den ich denken kann, ist wp-content/uploads/
, aber das klingt einfach nicht richtig :)
Gibt es also einen sicheren Ort, an dem Sie Dateien erstellen können, ohne sich Sorgen machen zu müssen, dass sie bei WordPress / Plugin / Theme-Update gelöscht werden?
Eine Lösung könnte darin bestehen, ein untergeordnetes Theme / Verzeichnis im Verzeichnis Themes / Plugins zu erstellen ...
quelle
Bei der Arbeit an einem Wordpress-Plugin bin ich auf Ihre Frage gestoßen. Ich habe auch zuerst darüber nachgedacht, temporäre Dateien zu erstellen, um einige Daten zwischenzuspeichern, die mein Plugin erstellt hat. Wenn ich es mir etwas genauer überlege, erscheint mir dieser Ansatz seltsam, da Sie nicht möchten, dass temporäre Daten auf einem Server herumliegen, wenn Sie versuchen, sie mithilfe eines Serverclusters zu skalieren.
Also habe ich erneut gesucht und es scheint eine gültige Lösung für solche Probleme zu sein: die Wordpress Transients API , mit der Sie Daten mit einem Ablaufdatum in der Datenbank speichern können. Natürlich könnte Ihr Problem immer noch lokal zwischengespeicherte Dateien erfordern, z. B. wenn sie zu groß für die Datenbank sind, aber zumindest empfehle ich, auch diese Option zu prüfen :-)
quelle
Ich kann mir nur ein paar gute Gründe vorstellen, warum ein Plugin eine Datei erstellen müsste. Eine besteht darin, komplizierte Optionen zu sichern, die der Benutzer exportieren und herunterladen kann, um auf eine neue Site zu wechseln. Das andere ist ein Sitemap-Plugin.
Wenn Ihr Plugin Vorlagendateien enthält, die der Benutzer anpassen kann, sollten Sie dem Benutzer die Option geben, die angepasste Datei in das aktuelle Themenverzeichnis zu verschieben, damit sie beim Aktualisieren Ihres Plugins nicht überschrieben werden. Sie können versuchen, die Dateien zuerst aus dem Themenverzeichnis zu laden und dann auf Ihr Plugin-Verzeichnis zurückzugreifen.
Gravity Forms speichert hochgeladene Formulardateien in einem eigenen Ordner innerhalb der Uploads. W3 Total Cache verwendet WP-Inhalt, Login Redirect verwendet die oben beschriebene Methode.
quelle
Wenn Sie Dateien erstellen müssen (z. B. temporäre Dateien für ein CAPTCHA-Plugin), sollten Sie auf jeden Fall
\wp-content\uploads\
(oder ein benutzerdefiniertes Verzeichnis wie\wp-content\plugin-slug-files\
) verwenden.Die meisten anderen benutzerdefinierten Codes sollten wirklich in der Datenbank gespeichert werden.
quelle
eval()
es? auf keinen Fall ...eval()
?Ich empfehle immer einen PSR-0-kompatiblen Autoloader und einen Bibliotheksordner, der einfach funktioniert.
Einige WP-Benutzer schießen Sie dann möglicherweise, aber möglicherweise konzentrieren Sie sich nicht auf diese Benutzer, sodass dies eine Option sein kann. Vor allem, wenn Sie immer mehr herstellerspezifische Bibliotheken erhalten.
quelle