La add_image_size( $name, $width, $height, $crop )
fonction est suffisamment gracieuse pour gérer plusieurs appels en utilisant la même chose $name
. Il écrase simplement la valeur existante :
$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );
Cela signifie donc que tout ce que vous devez faire pour remplacer la définition du thème parent de la taille d'image personnalisée est de vous assurer que votre appel à se add_image_size()
déclenche après l'appel du thème parent .
En supposant que le thème parent l'aime bien:
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' );
Ensuite, l' add_image_size()
appel du thème parent se déclenche sur le after_setup_theme
crochet, avec la priorité par défaut (c'est-à-dire 10
).
(Remarque: si les appels ne sont pas encapsulés dans un rappel, ils tirent sur le plugins_loaded
crochet, en priorité 10
.)
Voici la partie critique: le functions.php
fichier du thème enfant est analysé avant le thème parent , donc si vous utilisez les mêmes crochets pour lancer vos add_image_size()
appels, ils seront remplacés par le thème parentadd_image_size()
appels .
La solution consiste à utiliser un hook ultérieur ou une priorité inférieure , pour garantir que l' add_image_size()
appel du thème enfant se déclenche après du thème parent.
Cela devrait faire l'affaire, quelle que soit la façon dont le thème parent déclenche ses appels:
function child_theme_setup() {
add_image_size( 'name', 400, 300, true );
}
add_action( 'after_setup_theme', 'child_theme_setup', 11 );
Notez que nous utilisons le même after_setup_theme
crochet, mais utiliser une priorité plus faible (c. -à-au 11
lieu de 10
. Feu Callbacks dans l' ordre de priorité plus élevée (nombre inférieur) à faible priorité (nombre plus élevé), en commençant par priorité 0
. Ainsi , un rappel accroché en priorité 11
se déclenche après un rappel accroché en priorité10
.
Notez également que le after_setup_theme
hook lui-même se déclenche après le plugins_loaded
hook, donc ce rappel remplacera toujours le thème parent, même si le thème parent est _doing_it_wrong()
en n'encapsulant pas ces appels dans un rappel approprié, accroché dans un hook approprié.
add_image_size()
appelsfunctions.php
sont-ils simplement assis nus , ou sont-ils correctement enveloppés dans un rappel et connectésafter_setup_theme
? Savoir ce qui est essentiel pour répondre à votre question.