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_themecrochet, 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_loadedcrochet, en priorité 10.)
Voici la partie critique: le functions.phpfichier 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_themecrochet, mais utiliser une priorité plus faible (c. -à-au 11lieu 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é 11se déclenche après un rappel accroché en priorité10 .
Notez également que le after_setup_themehook lui-même se déclenche après le plugins_loadedhook, 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.phpsont-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.