Gostaria de oferecer meu tipo de postagem personalizado como um plug-in, para que as pessoas possam usá-lo sem tocar na pasta de temas. Porém, modelos personalizados de tipo de postagem - como single-movies.php - residem na pasta do tema. Existe uma maneira de fazer com que o WP procure um single-movies.php na pasta do plugin? Conectando uma função à hierarquia de arquivadores ? Ou get_template_directory (); ?
plugins
custom-post-types
themes
directory
nathanbweb
fonte
fonte
get_query_template()
função. Como um gancho variável, a primeira parte{$type}_template
muda dependendo do parâmetro que é passado para essa função. Veja wp-includes / template.php para alguns dos mais comunsadd_filter( 'single-movies_template', 'my_custom_template' );
como no tutorial vinculado. (Esta questão está fechada para novas respostas, então eu não pode adicioná-lo por conta própria.)PLUGIN_PATH
porplugin_dir_path( __FILE__ )
e remover a primeira barra do seu nome de arquivo. O caminho completo seria algo parecido com isto:return plugin_dir_path( __FILE__ ) . 'Custom_File.php';
Resposta atualizada
Versão mais limpa e mais curta.
Resposta antiga
Foi adicionada uma verificação de um modelo específico de tipo de postagem personalizado na pasta do tema à resposta @Brainternet.
Agora você pode permitir que os usuários do plugin copiem o modelo do seu plugin para o tema deles para substituí-lo.
Neste exemplo, os modelos devem estar no diretório raiz do plug-in e do tema.
fonte
locate_template
vez deget_stylesheet_directory
soa como a opção mais limpa para mim (encontrada aqui: code.tutsplus.com/tutorials/… ).Gostaria de salientar que, quando você estiver usando o método de filtro para isso, é extremamente importante priorizar o filtro da seguinte forma:
Se você não fizer isso, algumas vezes o WP tentará verificar novamente após esse filtro. Estava puxando meu cabelo por causa disso por 2 horas.
fonte
Existe uma maneira muito melhor de fazer isso que eu estou usando para meus plugins.
Use o
template_include
gancho de filtro para carregar o código acima.fonte
Graças a esta página, consegui resolver a mesma pergunta para mim.
Para referência, é isso que eu acabei com:
o gancho do filtro {$ type} _template não funcionou para mim
fonte
Acima está uma ótima resposta, mas verificar o $ single var permite que o modelo substitua um modelo, se um for fornecido pelo tema / tema filho.
fonte