Ho avuto il problema che devo caricare il functions.php
file del tema del mio genitore prima del functions.php
caricamento del file del tema del mio bambino . Ciò è necessario per la procedura di installazione e inizializzazione. Ho guardato gli hook all'interno di /wp_core_root/wp-settings.php (chiamato:) do_action('setup_theme');
.
Il problema è che non so come collegarmi lì, perché il primo file che ottengo è il tema figlio functions.php
, quindi non add_action( 'setup_theme', 'my_init_function' );
funzionerà.
Modifica:
a) So che i plugin si caricano prima del tema e quindi possono accedere anche alla Query iniziale, ma non voglio fare affidamento su un Plugin.
b) Ecco il codice (abbreviato) dal file 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' );
Voglio evitare due cose: prima molte spiegazioni agli utenti. In secondo luogo la possibilità che qualcuno rompa qualcosa se taglia la corda eliminando accidentalmente la procedura di avvio dei genitori. Le persone devono semplicemente giocare all'interno di Functions.php senza rischiare di rompere qualcosa senza saperlo.
In altre parole: come posso mantenere pulito il mio file Functions.php di temi per bambini, ma ho fatto il bootstrap dei temi principali?
Qualche idea? Molte grazie!
functions.php
. Dai un'occhiata al wp-settings.php
file "molto loko" nel core (riga: 275-279 @wp 3.1 rc) ... assomiglia a questo:, if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) ) include( STYLESHEETPATH . '/functions.php' ); if ( file_exists( TEMPLATEPATH . '/functions.php' ) ) include( TEMPLATEPATH . '/functions.php' );
quindi non vedo alcuna possibilità ... E non voglio usare un plugin per avviare il mio tema.
include(/path/to/parent/themes/functions.php)
nella parte superiore delle funzioni.php dei temi di tuo figlio, allora tutto viene caricato prima. Non?