Dónde almacenar los archivos PHP creados por plugin / temas

11

Hay casos en los que un complemento o tema necesita crear un archivo php en algún lugar que pueda incluirlo más adelante. 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 se preocupe por la eliminación de ellos en WordPress / plugin / theme update?

Una solución podría ser crear un directorio / tema secundario en el directorio themes / plugins ...

    
pregunta onetrickpony 25.04.2011 - 19:40

6 respuestas

8

El lugar apropiado en mi humilde opinión sería una carpeta personalizada que creas dentro del directorio wp-content. Lee esto antes de crear archivos: enlace

    
respondido por el mfields 25.04.2011 - 19:42
5

No puede confiar en el acceso de escritura en el plugin o directorio de temas, por lo que wp_upload_dir () es el único directorio posible.
Pero realmente dudo que haya una necesidad de almacenar la información en un nuevo archivo. Si el usuario ha creado la plantilla, guárdela en una opción y analice el contenido con sus funciones regulares de complemento (por ejemplo, sustituyendo los marcadores de posición por strtr() ).

    
respondido por el fuxia 25.04.2011 - 19:48
5

Mientras trabajaba en un plugin de Wordpress, me topé con tu pregunta. También pensé por primera vez en crear archivos temporales para almacenar en caché algunos datos que mi complemento estaba creando. Sin embargo, si lo pienso un poco más, este enfoque me parece extraño, ya que no quiere tener datos temporales en un solo servidor si está intentando escalarlos utilizando un grupo de servidores.

Así que busqué de nuevo y parece que la solución válida para tales problemas es la API de Wordpress Transients que le permite almacenar datos en el Base de datos con fecha de caducidad. 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 sugiero que también echen un vistazo a esta opción :-)

    
respondido por el Sebi 10.11.2013 - 21:39
3

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 las opciones complicadas que el usuario puede exportar y descargar para pasar a un sitio nuevo. El otro es un plugin de sitemap.

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 se actualice su complemento no se sobrescriban. Puede intentar cargar los archivos del 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 subidas. W3 Total Cache usa wp-content, la redirección de inicio de sesión utiliza el método que describí anteriormente.

    
respondido por el Chris_O 27.04.2011 - 12:28
1

Si debe crear archivos (como los archivos temporales para un complemento de CAPTCHA), definitivamente debe usar \wp-content\uploads\ (o un directorio personalizado como \wp-content\plugin-slug-files\ ).

La mayoría de los demás códigos personalizados deberían almacenarse en la base de datos.

    
respondido por el Chip Bennett 25.04.2011 - 19:43
1

Siempre sugiero un cargador automático compatible con PSR-0 y una carpeta de biblioteca que simplemente funcione.

Algunos usuarios de WP pueden dispararte, pero quizás no estés centrado en estos usuarios, por lo que esta puede ser una opción. Especialmente si obtienes más y más librerías específicas de proveedores.

    
respondido por el hakre 29.04.2011 - 16:58

Lea otras preguntas en las etiquetas