Ich habe das Problem, dass ich die functions.php
Datei meines übergeordneten Themas laden muss, bevor die Datei meines untergeordneten Themas geladen wird functions.php
. Dies wird für das Setup & Init-Verfahren benötigt. Ich habe mir die Hooks in /wp_core_root/wp-settings.php (mit dem Namen :) angesehen do_action('setup_theme');
.
Das Problem ist, dass ich nicht weiß, wie ich mich dort einhängen soll, weil die erste Datei, die ich bekomme, die des untergeordneten Themas ist functions.php
, also wird keine add_action( 'setup_theme', 'my_init_function' );
funktionieren.
Bearbeiten:
a) Ich weiß, dass Plugins früher als das Thema geladen werden und daher auch auf die anfängliche Abfrage zugreifen können, aber ich möchte mich nicht auf ein Plugin verlassen.
b) Hier ist der Code (gekürzt) aus der Datei 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' );
Ich möchte zwei Dinge vermeiden: Erstens viele Erklärungen für Benutzer. Zweitens die Möglichkeit, dass jemand etwas bricht, wenn das Seil durch versehentliches Löschen des Init-Verfahrens der Eltern durchtrennt. Die Leute sollen einfach in der functions.php spielen, ohne das Risiko einzugehen, etwas zu zerbrechen, ohne es zu wissen.
Mit anderen Worten: Wie halte ich die Datei "functions.php" meiner untergeordneten Themen sauber, aber habe ich den Bootstrap der übergeordneten Themen durchgeführt?
Irgendwelche Ideen? Danke vielmals!
functions.php
. Schauen Sie sich die "molto loko" wp-settings.php
-Datei im Kern an (Zeile: 275-279 @wp 3.1 rc) ... sieht so aus : if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) ) include( STYLESHEETPATH . '/functions.php' ); if ( file_exists( TEMPLATEPATH . '/functions.php' ) ) include( TEMPLATEPATH . '/functions.php' );
, also sehe ich keine Chance ... Und ich möchte sie nicht nutzen ein Plugin zum Bootstrap meines Themas.
include(/path/to/parent/themes/functions.php)
oben in Ihre untergeordneten Themen functions.php einfügen , wird alles dort vorher geladen. Nicht?