Eu tenho o problema de ter que carregar o functions.php
arquivo do meu tema pai antes que o functions.php
arquivo do tema filho seja carregado. Isso é necessário para o procedimento de instalação e inicialização. Eu olhei para os ganchos dentro de /wp_core_root/wp-settings.php (nomeado:) do_action('setup_theme');
.
O problema é que eu não sei como me conectar lá, porque o primeiro arquivo que recebo é do tema filho functions.php
, então não add_action( 'setup_theme', 'my_init_function' );
funcionará.
Edit:
a) Eu sei que os plug-ins carregam mais cedo que o tema e, portanto, podem acessar até a consulta inicial, mas não quero confiar em um plug-in.
b) Aqui está o código (abreviado) do arquivo wp-settings.php
// happens a lot earlier:
do_action( 'plugins_loaded' );
// localize stuff happening here
do_action( 'setup_theme' );
// Load the functions for the active theme, for both parent and child theme if applicable.
if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) )
include( STYLESHEETPATH . '/functions.php' );
if ( file_exists( TEMPLATEPATH . '/functions.php' ) )
include( TEMPLATEPATH . '/functions.php' );
// first available hook, *after* functions.php was loaded
do_action( 'after_setup_theme' );
Quero evitar duas coisas: primeiro, muitas explicações para os usuários. Segundo, a chance de alguém quebrar alguma coisa se cortar a corda acidentalmente com a exclusão do procedimento inicial dos pais. As pessoas devem apenas tocar dentro do functions.php sem correr o risco de quebrar nada sem saber.
Em outras palavras: Como faço para manter limpo o arquivo functions.php dos temas filhos, mas faço a inicialização dos temas pai?
Alguma ideia? Muito obrigado!
functions.php
. Dê uma olhada no wp-settings.php
arquivo "molto loko" no núcleo (linha: 275-279 @wp 3.1 rc) ... fica assim: if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) ) include( STYLESHEETPATH . '/functions.php' ); if ( file_exists( TEMPLATEPATH . '/functions.php' ) ) include( TEMPLATEPATH . '/functions.php' );
assim não vejo chance ... E não quero usar um plugin para iniciar meu tema.
include(/path/to/parent/themes/functions.php)
no topo dos temas filhos functions.php, tudo será carregado antes. Não?