Onde armazenar arquivos PHP criados por plugins / temas

11

Existem casos em que um plug-in ou tema precisa criar um arquivo php em algum lugar que possa incluí-lo posteriormente. Por exemplo, um plugin captcha, ou algum tipo de sistema de templates como o twig / smarty (na minha situação, é um mecanismo de template simples para uma coleção de widgets).

Onde deve ser esse arquivo criado?

O único lugar em que consigo pensar é wp-content/uploads/ , mas isso não parece certo:)

Então, há um lugar seguro onde você pode criar arquivos e não se preocupar com a exclusão deles no WordPress / plugin / theme update?

Uma solução pode ser criar um diretório / tema filho no diretório themes / plugins ...

    
por onetrickpony 25.04.2011 / 19:40

6 respostas

8

O lugar apropriado IMHO seria uma pasta personalizada que você cria dentro do diretório wp-content Leia isto antes de criar arquivos: enlace

    
por mfields 25.04.2011 / 19:42
5

Você não pode confiar no acesso de gravação no diretório de plug-ins ou de temas, portanto wp_upload_dir () é o único diretório possível.
Mas Eu realmente duvido que exista a necessidade de armazenar as informações em um novo arquivo. Se o modelo for criado pelo usuário, armazene-o em uma opção e analise o conteúdo com suas funções regulares de plug-in (por exemplo, substituindo espaços reservados por strtr() ).

    
por fuxia 25.04.2011 / 19:48
5

Enquanto trabalhava em um plug-in do Wordpress, deparei com sua pergunta. Eu também pensei primeiro em criar arquivos temporários para armazenar em cache alguns dados que meu plugin estava criando. No entanto, dando-lhe um pouco mais de raciocínio, essa abordagem parece estranha para mim, já que você não quer ter dados temporários por aí em um servidor se estiver tentando dimensioná-lo usando um cluster de servidores.

Por isso, pesquisei novamente e parece que a solução válida para esses problemas é a API de transientes do Wordpress , permitindo que você armazene dados no banco de dados com uma data de expiração. É claro que o seu problema ainda pode exigir arquivos em cache local, por exemplo se eles são muito grandes para o banco de dados, mas pelo menos eu sugiro dar uma olhada nessa opção também: -)

    
por Sebi 10.11.2013 / 21:39
3

Eu só consigo pensar em alguns bons motivos pelos quais um plug-in precisaria para criar um arquivo. Uma delas é fazer backup de opções complicadas que o usuário pode exportar e baixar para mudar para um novo site. O outro é um plugin de sitemap.

Se o seu plug-in tiver arquivos de modelo que o usuário possa personalizar, você deverá dar ao usuário a opção de mover o arquivo personalizado para o diretório do tema atual para que, quando o plug-in for atualizado, ele não seja sobrescrito. Você pode tentar carregar os arquivos do diretório do tema primeiro e depois voltar ao seu diretório de plugins.

Gravity Forms armazena os arquivos enviados por upload em sua própria pasta dentro dos uploads. O W3 Total Cache usa o conteúdo wp, o redirecionamento de login usa o método que descrevi acima.

    
por Chris_O 27.04.2011 / 12:28
1

Se você precisar criar arquivos (como arquivos temporários para um CAPTCHA Plugin), você definitivamente deve usar \wp-content\uploads\ (ou um diretório personalizado como \wp-content\plugin-slug-files\ ).

A maioria dos outros códigos personalizados deve ser armazenada no banco de dados.

    
por Chip Bennett 25.04.2011 / 19:43
1

Sempre sugiro um autoloader compatível com o PSR-0 e uma pasta de biblioteca que funcione.

Alguns usuários do WP podem atirar em você, mas talvez você não esteja focado nesses usuários, portanto, isso pode ser uma opção. Especialmente se você conseguir mais e mais bibliotecas específicas de fornecedores.

    
por hakre 29.04.2011 / 16:58