Tengo el problema de que tengo que cargar el functions.php
archivo de mi tema principal antes de que se cargue el archivo de mi tema secundario functions.php
. Esto es necesario para el procedimiento de configuración e inicio. Miré los ganchos dentro de /wp_core_root/wp-settings.php (named:) do_action('setup_theme');
.
El problema es que no sé cómo conectarme allí, porque el primer archivo que obtengo es el tema secundario functions.php
, por lo que no add_action( 'setup_theme', 'my_init_function' );
funcionará.
Editar:
a) Sé que los complementos se cargan antes que el tema y, por lo tanto, pueden acceder incluso a la consulta inicial, pero no quiero confiar en un complemento.
b) Aquí está el código (acortado) del archivo 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' );
Quiero evitar dos cosas: primero mucha explicación para los usuarios. En segundo lugar, la posibilidad de que alguien rompa algo si corta la cuerda al eliminar accidentalmente el procedimiento de inicio de los padres. La gente simplemente jugará dentro de functions.php sin arriesgarse a romper nada sin saberlo.
En otras palabras: ¿cómo mantengo limpio mi archivo de funciones de temas infantiles.php, pero tengo el arranque de los temas principales?
¿Algunas ideas? ¡Muchas gracias!
functions.php
. Eche un vistazo al wp-settings.php
archivo "molto loko" en el núcleo (línea: 275-279 @wp 3.1 rc) ... se ve así: if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) ) include( STYLESHEETPATH . '/functions.php' ); if ( file_exists( TEMPLATEPATH . '/functions.php' ) ) include( TEMPLATEPATH . '/functions.php' );
así que no puedo ver una oportunidad ... Y no quiero usar un complemento para arrancar mi tema.
include(/path/to/parent/themes/functions.php)
en la parte superior de los temas de su hijo functions.php, entonces todo lo que está allí se carga antes. ¿No?