Hay casos en los que un complemento o tema necesita crear un archivo php en algún lugar que luego pueda incluirlo. Por ejemplo, un complemento de captcha, o algún tipo de sistema de plantillas como twig / smarty (en mi situación, es un motor de plantillas simple para una colección de widgets).
¿Dónde se debe crear este archivo?
El único lugar en el que puedo pensar es wp-content/uploads/
, pero eso no suena bien :)
Entonces, ¿hay un lugar seguro donde pueda crear archivos y no preocuparse de que se eliminen en WordPress / plugin / theme update?
Una solución podría ser crear un tema / directorio secundario en el directorio themes / plugins ...
fuente
Mientras trabajaba en un complemento de Wordpress, me topé con su pregunta. También pensé primero en crear archivos temporales para almacenar en caché algunos datos que estaba creando mi complemento. Sin embargo, pensando un poco más, este enfoque me parece extraño ya que no desea tener datos temporales en un servidor si está tratando de escalarlos utilizando un grupo de servidores.
Así que busqué nuevamente y parece que una solución válida para tales problemas es la API de Wordpress Transients que le permite almacenar datos en la base de datos con una fecha de vencimiento. Por supuesto, su problema aún podría requerir archivos almacenados en caché localmente, por ejemplo, si son demasiado grandes para la base de datos, pero al menos le sugiero que también eche un vistazo a esta opción :-)
fuente
Solo puedo pensar en algunas buenas razones por las que un complemento necesitaría crear un archivo. Una es hacer una copia de seguridad de opciones complicadas que el usuario puede exportar y descargar para moverse a un nuevo sitio. El otro es un complemento de mapa del sitio.
Si su complemento tiene archivos de plantilla que el usuario puede personalizar, debe darle al usuario la opción de mover el archivo personalizado al directorio del tema actual para que cuando el complemento se actualice no se sobrescriban. Puede intentar cargar los archivos desde el directorio de temas primero y luego volver a su directorio de complementos.
Gravity Forms almacena los archivos cargados en su propia carpeta dentro de las cargas. W3 Total Cache usa wp-content, la redirección de inicio de sesión usa el método que describí anteriormente.
fuente
Si debe crear archivos (como archivos temporales para un complemento CAPTCHA), definitivamente debe usar
\wp-content\uploads\
(o un directorio personalizado como\wp-content\plugin-slug-files\
).La mayoría de los otros códigos personalizados realmente deberían almacenarse en la base de datos.
fuente
eval()
eso? de ninguna manera ...eval()
?Siempre sugiero un autocargador compatible con PSR-0 y una carpeta de biblioteca que simplemente funcione.
Algunos usuarios de WP pueden dispararte en ese momento, pero quizás no estés enfocado en estos usuarios, por lo que esta puede ser una opción. Especialmente si obtienes más y más librerías específicas del proveedor.
fuente