Są przypadki, w których wtyczka lub motyw musi utworzyć plik php w innym miejscu, które może go później dołączyć. Na przykład wtyczka captcha lub jakiś system szablonów, taki jak twig / smarty (W mojej sytuacji jest to prosty silnik szablonów dla kolekcji widżetów).
Gdzie należy utworzyć ten plik?
Jedyne miejsce, o którym myślę, to takie wp-content/uploads/
, ale to nie brzmi dobrze :)
Czy jest więc bezpieczne miejsce, w którym można tworzyć pliki i nie martwić się, że zostaną usunięte podczas aktualizacji WordPress / wtyczki / motywu?
Jednym z rozwiązań może być utworzenie podrzędnego katalogu theme / w katalogu themes / plugins ...
źródło
Podczas pracy nad wtyczką Wordpress natknąłem się na twoje pytanie. Najpierw pomyślałem o utworzeniu plików tymczasowych w celu buforowania niektórych danych tworzonych przez moją wtyczkę. Jednak myśląc nieco dłużej, takie podejście wydaje mi się dziwne, ponieważ nie chcesz mieć tymczasowych danych leżących na jednym serwerze, jeśli próbujesz skalować je za pomocą klastra serwerów.
Więc przeszukałem ponownie i wydaje się, że poprawnym rozwiązaniem takich problemów jest Wordpress Transients API pozwalający na przechowywanie danych w bazie danych z datą ważności. Oczywiście Twój problem może nadal wymagać plików buforowanych lokalnie, np. Jeśli są one zbyt duże dla bazy danych, ale przynajmniej sugeruję, aby również spojrzeć na tę opcję :-)
źródło
Mogę tylko wymyślić kilka dobrych powodów, dla których wtyczka musiałaby utworzyć plik. Jednym z nich jest wykonanie kopii zapasowej skomplikowanych opcji, które użytkownik może wyeksportować i pobrać, aby przejść do nowej witryny. Drugi to wtyczka mapy witryny.
Jeśli Twoja wtyczka zawiera pliki szablonów, które użytkownik może dostosować, powinnaś dać użytkownikowi możliwość przeniesienia dostosowanego pliku do bieżącego katalogu motywów, aby po aktualizacji wtyczki nie został zastąpiony. Możesz najpierw spróbować załadować pliki z katalogu motywów, a następnie wrócić do katalogu wtyczek.
Gravity Forms przechowuje przesłane pliki w swoim własnym folderze wewnątrz przesyłanych plików. W3 Total Cache korzysta z treści wp, przekierowanie logowania używa metody opisanej powyżej.
źródło
Jeśli musisz utworzyć pliki (takie jak pliki tymczasowe dla wtyczki CAPTCHA), zdecydowanie powinieneś użyć
\wp-content\uploads\
(lub niestandardowego katalogu, takiego jak\wp-content\plugin-slug-files\
).Większość innych niestandardowych kodów naprawdę powinno być przechowywanych w bazie danych.
źródło
eval()
to? nie ma mowy ...eval()
?Zawsze sugeruję autoloader zgodny z PSR-0 i folder biblioteki, który po prostu działa.
Niektórzy użytkownicy WP mogą cię wtedy zastrzelić, ale być może nie koncentrujesz się na tych użytkownikach, więc może to być opcja. Zwłaszcza jeśli dostajesz coraz więcej bibliotek specyficznych dla dostawców.
źródło