Estou em uma bagunça.Eu sei que essa é uma pergunta boba.Você vê que o caminho do tema não é tão bom.Portanto, existe outra maneira? Como posso usar get_template_directory()
aqui?
// theme folder path
if ( ! defined( 'TZSC_THEME_DIR' ) ) {
define( 'TZSC_THEME_DIR', dirname(__FILE__).'/' );
}
// theme folder URL
if ( ! defined( 'TZSC_THEME_URL' ) ) {
define( 'TZSC_THEME_URL', plugin_dir_url( __FILE__ ) );
}
theme-development
ashraf
fonte
fonte
Respostas:
Não use constantes para isso. Não use constantes globais.
Existem dois tipos de constantes: constantes de classe / interface e constantes globais.
As constantes em classes ou interfaces são boas e às vezes úteis. Um exemplo excessivamente simplista:
Mas lembre-se, essas constantes são sempre públicas. Se você os alterar posteriormente, poderá quebrar o código que depende deles.
Isso é pior com constantes globais. Imagine o seguinte:
E, em seguida, uma função para uma imagem de cabeçalho padrão:
Essa função assume que algo está fora de controle, sabe demais. Como você testa essa função com valores diferentes para a constante? Você não pode.
Digamos que você queira testar o que acontece quando a constante é configurada para um diretório inexistente ou para outro servidor mais lento. Mas depois de definir a constante, você não poderá alterar seu valor. Você não pode executar todos os testes de uma só vez, isso torna os testes mais difíceis do que o necessário.
E em um tema filho que tenta usar sua própria imagem padrão - como você implementa isso? A constante é definida pelo tema pai. Você pode adicionar uma verificação com
defined()
, mas isso torna mais difícil ver onde seu valor foi realmente escrito.Seria muito melhor reescrever a função para:
Eu disse anteriormente, as constantes são uma API. As APIs devem ser fáceis de alterar, mas é realmente difícil descontinuar uma constante, porque o PHP não registra o acesso. Portanto, sua mensagem de descontinuação nunca alcançará outros desenvolvedores, exceto quando eles lerem seu código-fonte ou seus documentos com muito cuidado. Confie em mim, eles não.
Use
get_stylesheet_directory_uri()
em temas filhos eget_template_directory_uri()
em pais. Ambos podem ser filtrados em tempo de execução, para que você possa executar todos os seus testes ao mesmo tempo.fonte