Есть случаи, когда плагин или тема должны создать файл php где-нибудь, чтобы позже включить его. Например, плагин капчи или какая-то система шаблонов, такая как twig / smarty (в моей ситуации это простой движок шаблонов для коллекции виджетов).
Где должен быть создан этот файл?
Единственное место, о котором я могу думать, это wp-content/uploads/
, но это просто не звучит правильно :)
Так есть ли безопасное место, где вы можете создавать файлы и не беспокоиться об их удалении при обновлении WordPress / plugin / theme?
Одним из решений может быть создание дочерней темы / каталога в каталоге themes / plugins ...
источник
Работая над плагином Wordpress, я наткнулся на ваш вопрос. Сначала я подумал о создании временных файлов для кэширования некоторых данных, которые создавал мой плагин. Однако, если подумать немного об этом, этот подход кажется мне странным, поскольку вы не хотите, чтобы временные данные лежали на одном сервере, если вы пытаетесь масштабировать их с помощью кластера серверов.
Поэтому я снова искал и, похоже, верным решением для таких проблем является API Wordpress Transients, позволяющий хранить данные в базе данных с датой истечения срока действия. Конечно, ваша проблема может потребовать локально кэшированных файлов, например, если они слишком велики для базы данных, но, по крайней мере, я предлагаю взглянуть и на эту опцию :-)
источник
Я могу думать только о нескольких веских причинах, по которым плагину понадобится создать файл. Одним из них является резервное копирование сложных параметров, которые пользователь может экспортировать и загрузить для перехода на новый сайт. Другой - плагин карты сайта.
Если в вашем плагине есть файлы шаблонов, которые пользователь может настроить, вы должны дать ему возможность переместить настроенный файл в текущий каталог тем, чтобы при обновлении вашего плагина они не перезаписывались. Вы можете сначала попытаться загрузить файлы из каталога тем, а затем вернуться в каталог плагинов.
Gravity Forms хранит загруженные файлы в своей папке внутри загрузок. W3 Total Cache использует wp-контент, перенаправление входа в систему использует метод, который я описал выше.
источник
Если вам необходимо создать файлы (например, временные файлы для плагина CAPTCHA), вы обязательно должны использовать
\wp-content\uploads\
(или пользовательский каталог, такой как\wp-content\plugin-slug-files\
).Большинство других пользовательских кодов действительно должны храниться в базе данных.
источник
eval()
это? ни в коем случае ...eval()
?Я всегда предлагаю PSR-0-совместимый автозагрузчик и папку библиотеки, которая просто работает.
Некоторые пользователи WP могут застрелить вас тогда, но, возможно, вы не сфокусированы на этих пользователях, так что это может быть вариантом. Особенно, если вы получаете все больше и больше специфических для продавца библиотек.
источник