Die add_image_size( $name, $width, $height, $crop )
Funktion ist elegant genug, um mehrere Anrufe mit derselben Funktion zu bearbeiten $name
. Es überschreibt einfach den vorhandenen Wert :
$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );
Das heißt also, dass alles , was Sie tun müssen , um das übergeordnete Themas der Definition der benutzerdefinierten Bildgröße außer Kraft zu setzen, um sicherzustellen , dass Ihr Anruf zu add_image_size()
Bränden nach dem übergeordneten Thema Ruf .
Angenommen, das übergeordnete Thema gefällt mir so:
function parent_theme_setup() {
add_image_size( 'name', 500, 200, true );
add_image_size( 'new-name', 400, 300, true );
}
add_action( 'after_setup_theme', 'parent_theme_setup' );
Dann wird der add_image_size()
Anruf des übergeordneten Themas am after_setup_theme
Hook mit der Standardpriorität (dh 10
) ausgelöst .
(Hinweis: Wenn die Anrufe nicht in einen Rückruf eingebunden sind, werden sie plugins_loaded
vorrangig am Hook ausgelöst 10
.)
Hier ist der entscheidende Teil: Die functions.php
Datei des untergeordneten Themes wird vor der Datei des übergeordneten Themes analysiert. Wenn Sie also dieselben Hooks zum Auslösen Ihrer add_image_size()
Anrufe verwenden, werden diese durch die add_image_size()
Aufrufe des übergeordneten Themes überschrieben .
Die Lösung ist auf einen späteren Haken oder eine niedrigere Priorität zu verwenden , dass das Kind Theme , um sicherzustellen , add_image_size()
Anruf Feuer nach der Mutter Thema ist.
Dies sollte der Trick sein, unabhängig davon, wie das übergeordnete Thema seine Aufrufe auslöst:
function child_theme_setup() {
add_image_size( 'name', 400, 300, true );
}
add_action( 'after_setup_theme', 'child_theme_setup', 11 );
Beachten Sie, dass wir verwenden die gleichen after_setup_theme
Haken, sondern verwenden eine niedrigere Priorität (dh 11
statt 10
. Rückrufe Feuer in der Reihenfolge von höherer Priorität (niedrigere Zahl) Priorität (höhere Zahl) zu senken, mit Priorität beginnen 0
. So ein Rückruf in Priorität angeschlossen 11
wird Feuer nach ein Rückruf mit Priorität 10
.
Beachten Sie auch, dass der after_setup_theme
Hook selbst nach dem plugins_loaded
Hook ausgelöst wird, sodass dieser Callback das übergeordnete Theme überschreibt, auch wenn das übergeordnete Theme _doing_it_wrong()
solche Aufrufe nicht in einen entsprechenden Callback einbindet und in einen entsprechenden Hook eingebunden ist.
add_image_size()
Sitzen die Anrufe nur nacktfunctions.php
oder sind sie ordnungsgemäß in einen Rückruf eingebunden und damit verbundenafter_setup_theme
? Wissen, was für die Beantwortung Ihrer Frage entscheidend ist.