Há casos em que um plugin ou tema precisa criar um arquivo php em algum lugar que possa incluí-lo posteriormente. Por exemplo, um plug-in captcha, ou algum tipo de sistema de templates como twig / smarty (na minha situação, é um simples mecanismo de modelo para uma coleção de widgets).
Onde esse arquivo deve ser criado?
O único lugar em que consigo pensar é wp-content/uploads/
, mas isso não parece certo :)
Então, existe um lugar seguro onde você pode criar arquivos e não se preocupar com a exclusão deles no WordPress / plugin / atualização de tema?
Uma solução poderia ser criar um diretório / tema filho no diretório themes / plugins ...
fonte
Enquanto trabalhava em um plugin do Wordpress, me deparei com sua pergunta. Também pensei em criar arquivos temporários para armazenar em cache alguns dados que meu plug-in estava criando. No entanto, pensando um pouco mais, essa abordagem me parece estranha, pois você não deseja ter dados temporários em um servidor se estiver tentando escalá-los usando um cluster de servidores.
Por isso, procurei novamente e parece que a solução válida para esses problemas é a API do Wordpress Transients, que permite armazenar dados no banco de dados com uma data de validade. É claro que o seu problema ainda pode exigir arquivos armazenados em cache localmente, por exemplo, se eles forem muito grandes para o banco de dados, mas pelo menos eu sugiro que dê uma olhada nessa opção também :-)
fonte
Só consigo pensar em algumas boas razões para um plugin precisar criar um arquivo. Uma é 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 de temas atual, para que, quando o plug-in for atualizado, eles não sejam substituídos. Você pode tentar carregar os arquivos do diretório de temas primeiro e depois voltar ao diretório de plugins.
O Gravity Forms armazena os arquivos enviados por formulário em sua própria pasta, dentro dos envios. O W3 Total Cache usa o conteúdo wp, o redirecionamento de login usa o método descrito acima.
fonte
Se você deve criar arquivos (como arquivos temporários para um plug-in CAPTCHA), use definitivamente
\wp-content\uploads\
(ou um diretório personalizado como\wp-content\plugin-slug-files\
).A maioria dos outros códigos personalizados realmente deve ser armazenada no banco de dados.
fonte
eval()
isso? de jeito nenhum ...eval()
?Eu sempre sugiro um carregador automático compatível com PSR-0 e uma pasta da biblioteca que simplesmente funcione.
Alguns usuários do WP podem atirar em você, mas talvez você não esteja focado nesses usuários, então isso pode ser uma opção. Especialmente se você receber mais e mais bibliotecas específicas do fornecedor.
fonte