A documentação do WordPress para Determinação de diretórios de plug-in e conteúdo afirma que:
O WordPress utiliza as seguintes constantes ao determinar o caminho para os diretórios de conteúdo e plug-in. Eles não devem ser usados diretamente por plugins ou temas , mas estão listados aqui para garantir a integridade.
Ele continua listando WP_CONTENT_DIR
e WP_PLUGIN_DIR
entre constantes que os desenvolvedores de temas e plug-ins não devem usar, provavelmente por causa disso:
O WordPress permite que os usuários coloquem seu diretório wp-content em qualquer lugar que desejarem, portanto, você nunca deve assumir que os plug-ins estarão em wp-content / plugins, ou que os uploads estarão em wp-content / uploads ou que os temas estarão em wp- conteúdo / temas.
Mark Jaquith também comenta aqui que essas constantes não devem ser usadas:
Não use WP_PLUGIN_URL ou WP_PLUGIN_DIR - os plug-ins podem não estar no diretório de plug-ins.
Então, qual é a maneira aceita de referenciar o caminho completo para as pastas de plug-ins, conteúdo wp e temas sem usar essas constantes?
Como um exemplo simples, para gerar o caminho completo de todos os plugins instalados, eu posso fazer isso:
<?php
$plugins = get_plugins();
foreach ($plugins as $file => $details) {
echo WP_PLUGIN_DIR . '/' . $file . '<br>';
}
O que produz uma lista como esta:
/var/www/wp-content/plugins/akismet/akismet.php
/var/www/wp-content/plugins/debug-bar/debug-bar.php
/var/www/wp-content/plugins/hello.php
(Talvez eu queira fazer isso se estiver escrevendo um plug-in para permitir que o usuário arquive seletivamente plug-ins como parte de um backup do site, por exemplo.)
Se o uso WP_PLUGIN_DIR
estiver errado, qual é a alternativa sugerida? Não há equivalente wp_upload_dir()
para a pasta de plug-ins, temas e conteúdo wp que posso encontrar, o que torna problemática a referência a temas potencialmente errantes e diretórios raiz de plug-ins.
WP_PLUGIN_DIR
, portanto, minha pergunta aqui.