Mam problem z załadowaniem functions.php
pliku motywu nadrzędnego przed załadowaniem pliku motywu podrzędnego functions.php
. Jest to potrzebne do procedury konfiguracji i inicjowania. Spojrzałem na haki w katalogu /wp_core_root/wp-settings.php (o nazwie:) do_action('setup_theme');
.
Problem polega na tym, że nie wiem, jak się tam podłączyć, ponieważ pierwszy plik, który otrzymuję, to motyw podrzędny functions.php
, więc żadne nie add_action( 'setup_theme', 'my_init_function' );
będzie działać.
Edycja:
a) Wiem, że wtyczki ładują się wcześniej niż motyw i dlatego mogą uzyskać dostęp nawet do początkowego zapytania, ale nie chcę polegać na wtyczce.
b) Oto kod (skrócony) z pliku 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' );
Chcę uniknąć dwóch rzeczy: Najpierw wiele wyjaśnień dla użytkowników. Po drugie szansa, że ktoś coś zepsuje, jeśli przecina linę, przypadkowo usuwając procedurę inicjacyjną rodziców. Ludzie powinni po prostu bawić się funkcjami.php, nie ryzykując, że coś zepsują, nie wiedząc o tym.
Innymi słowy: w jaki sposób mogę utrzymać czystość mojego pliku motywów potomnych functions.php, ale wykonać bootstrap motywów nadrzędnych?
Jakieś pomysły? Wielkie dzięki!
functions.php
. Spójrz na wp-settings.php
plik „molto loko” w jądrze (linia: 275-279 @wp 3.1 rc) ... wygląda tak: if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) ) include( STYLESHEETPATH . '/functions.php' ); if ( file_exists( TEMPLATEPATH . '/functions.php' ) ) include( TEMPLATEPATH . '/functions.php' );
więc nie widzę szansy ... I nie chcę używać wtyczka do ładowania mojego motywu.
include(/path/to/parent/themes/functions.php)
na górze swoich motywów potomnych functions.php, wtedy wszystko tam jest ładowane wcześniej. Nie?