Je travaille sur un thème qui a un certain nombre de tailles d'image définies correctement en utilisant:
add_image_size( 'name', 500, 200, true );
Je voudrais remplacer ces tailles définies du thème enfant:
add_image_size( 'new-name', 400, 300, true );
Je sais que je peux ajouter de nouvelles tailles, mais si j'ajoute le même nom, c'est-à-dire:
add_image_size( 'name', 400, 300, true );
Ensuite, l'appel de la fonction parent est utilisé - celui de l'enfant est ignoré - l'ajout de règles supplémentaires ajoute des images supplémentaires qui ne seront jamais utilisées - ce n'est pas si mal, mais ce n'est pas efficace.
Existe-t-il une fonction pour annuler l'enregistrement d'une taille d'image ajoutée?
À votre santé!
Rayon
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.Réponses:
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 :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:
Ensuite, l'
add_image_size()
appel du thème parent se déclenche sur leafter_setup_theme
crochet, avec la priorité par défaut (c'est-à-dire10
).(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 vosadd_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:
Notez que nous utilisons le même
after_setup_theme
crochet, mais utiliser une priorité plus faible (c. -à-au11
lieu de10
. 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 leplugins_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é.la source
Si quelqu'un veut simplement supprimer les tailles d'image supplémentaires, au lieu de modifier les dimensions, utilisez remove_image_size (string $ name) , par exemple
la source
Dans votre thème Chili, vous devez utiliser
add_action( 'after_setup_theme','new-name');
la source
new-name
s'agit d'un nom de rappel non valide.