Incluir arquivos no arquivo de funções do tema filho

8

Normalmente, no meu arquivo de função do tema, eu vou exigir outros arquivos para manter as coisas limpas.

require_once("foo.php");

Agora trabalhando em um tema filho, gostaria de fazer o mesmo. Estou adicionando opções de administração personalizadas e parece impossível incluir código. Eu ecoei o caminho para ter certeza de que estou chamando o arquivo correto e ele está chamando o local correto, mas nada dentro desse arquivo parece rodar. O código é executado corretamente se colocado dentro do arquivo de funções do tema filho.

    
por curtismchale 26.10.2010 / 07:41

7 respostas

12

Temas filhos fazem referência a temas pai por nome de diretório e, em uma instalação normal, todos os seus temas residem em wp-content/themes/ , então eu diria que é bom fazer referência a esses temas pelo caminho relativo deles:

include '../parent-theme/some-file.php';

Se isso faz com que você fique desconfortável, observo as seguintes constantes no WordPress 3.0.1 com um tema filho twentyten chamado tt-child :

TEMPLATEPATH     /home/adam/public_html/wp3/wp-content/themes/twentyten
STYLESHEETPATH   /home/adam/public_html/wp3/wp-content/themes/tt-child

Assim, você pode fazer o seguinte no seu tema filho para fazer referência ao diretório do tema pai:

include TEMPLATEPATH . '/some-file.php';
    
por Annika Backstrom 26.10.2010 / 14:50
9

Em um tema infantil, a maneira correta é

require_once( get_stylesheet_directory() . 'foo.php');

Enquanto no tema pai você ainda pode usar

require_once ( get_template_directory() . 'foo.php' );

get_template_directory() ainda funciona no tema filho e, infelizmente, segmenta o diretório do tema pai. No seu caso, é útil

    
por Christian 23.08.2012 / 21:38
2

Oi @curtismchale :

Não sei se é isso ou não, mas você precisa incluir aspas em torno de foo.php , assim:

require_once('foo.php');

Isso resolve o seu problema?

    
por MikeSchinkel 26.10.2010 / 08:46
2

Use <?php get_template_part( 'name-the-page-here' ); ?> . Sem a extensão .php

    
por Everaldo Matias 12.07.2011 / 02:03
2

Você definitivamente não deseja codificar o URL. A maneira correta de fazer isso é

require_once( get_stylesheet_directory(). '/my_included_file.php' );

Veja mais informações em Wordpress Codex

Agora, se você tiver, por exemplo modificando header.php que tem um include você faria referência como segue:

require_once( get_stylesheet_directory() . '/../parenthteme/my_included_file.php' );
    
por Marlyse Comte 19.03.2013 / 20:39
0

É completamente possível e normal fazer inclusões em functions.php .

Eu faço assim no meu tema filho ( php é subdiretório de código):

include 'php/core.php';

Se você tiver problemas sem motivo aparente, ative o modo de depuração em wp-config.php :

define('WP_DEBUG', true);

Pode haver erros relevantes acontecendo, mas não exibidos.

    
por Rarst 26.10.2010 / 07:57
0

Acho que esta é a melhor maneira de obter o caminho do tema do seu filho

<?php $get_my_path = dirname( get_bloginfo('stylesheet_url') ); ?>
<?php require_once( $get_my_path. '/my_included_file.php' ); ?>

Obtenha ideias de enlace

    
por Maidul 19.03.2013 / 21:34