Quero procurar um modelo apropriado na pasta do tema antes de retornar ao arquivo no diretório do meu plugin. Aqui está o meu código:
add_filter ('template_include', 'sermon_template_include'); função sermon_template_include ($ template) { if (get_query_var ('post_type') == 'wpfc_sermon') { if (is_archive () || is_search ()): if (file_exists (TEMPLATEDIR. '/archive-wpfc_sermon.php')) retornar TEMPLATEDIR. '/archive-wpfc_sermon.php'; retornar dirname (__ FILE__). '/views/archive-wpfc_sermon.php'; outro : if (file_exists (TEMPLATEDIR. '/single-wpfc_sermon.php')) retornar TEMPLATEDIR. '/single-wpfc_sermon.php'; retornar dirname (__ FILE__). '/views/single-wpfc_sermon.php'; fim se; } retornar $ template; }
O problema é que não funciona! :-) Ele sempre escolhe o arquivo na minha pasta de plugins. alguma ideia do que fazer? Eu tentei muitas variações, mas não consigo fazer nada funcionar! Desde já, obrigado! Jack
EDITAR
Estou esperando que o archive-wpfc_sermon.php seja retornado da pasta do tema, se existir. No entanto, o arquivo do meu plugin sempre é retornado. Obrigado pela ajuda! Isso é do meu plug-in do Sermon Manager disponível no repositório.
Respostas:
Portanto, não sei exatamente o que está causando o problema, mas você pode tentar o seguinte:
dirname(__FILE__)
porplugin_dir_path( __FILE__ )
TEMPLATEDIR
porget_stylesheet_directory()
É possível que o problema venha da referência direta às constantes.
fonte
Não tenho certeza se isso funcionará para você, mas vale a pena tentar. Eu uso isso o tempo todo para meus tipos de postagem personalizados quando eles exigem um modelo especial.
Tudo o que você precisa fazer é adicionar esse script ao seu arquivo functions.php e colocar o arquivo de modelo no diretório do tema.
Isso pode valer a pena tentar e pode não causar conflito com seu plugin. No entanto, não tenho certeza disso.
Eu esqueci ... não se esqueça de adicionar a ação. :)
fonte