Estoy trabajando en un tema que tiene varios tamaños de imagen definidos correctamente usando:
add_image_size( 'name', 500, 200, true );
Me gustaría anular estos tamaños definidos del tema secundario:
add_image_size( 'new-name', 400, 300, true );
Sé que puedo agregar nuevos tamaños, pero si agrego el mismo nombre, es decir:
add_image_size( 'name', 400, 300, true );
Luego se usa la llamada a la función principal, se ignora la secundaria, al agregar reglas adicionales se agregan imágenes adicionales que nunca se usarán, no es tan malo, pero no es eficiente.
¿Existe una función para cancelar el registro de un tamaño de imagen agregado?
¡Salud!
Rayo
add_image_size()
llamadas simplemente se sientan desnudasfunctions.php
, o se envuelven correctamente dentro de una devolución de llamada y se enganchanafter_setup_theme
? Saber cuál es fundamental para responder a su pregunta.Respuestas:
La
add_image_size( $name, $width, $height, $crop )
función es lo suficientemente elegante como para manejar múltiples llamadas usando la misma$name
. Simplemente sobrescribe el valor existente :Eso significa que todo lo que necesita hacer para anular la definición del Tema principal del tamaño de imagen personalizado es asegurarse de que su llamada se
add_image_size()
active después de la llamada del Tema principal .Suponiendo que el Tema principal lo haga así:
Luego, la
add_image_size()
llamada del Tema principal se activa en elafter_setup_theme
gancho, en la prioridad predeterminada (es decir10
).(Nota: si las llamadas no están envueltas en una devolución de llamada, entonces se disparan en el
plugins_loaded
gancho, con prioridad10
).Aquí está la parte crítica: el
functions.php
archivo del tema secundario se analiza antes que el tema principal , por lo que si usa los mismos ganchos para disparar susadd_image_size()
llamadas, lasadd_image_size()
llamadas del tema primario lo anularán .La solución es utilizar un enlace posterior o una prioridad inferior , para garantizar que la
add_image_size()
llamada del Tema secundario se active después del Tema principal.Esto debería hacer el truco, independientemente de cómo el Tema principal active sus llamadas:
Tenga en cuenta que usamos el mismo
after_setup_theme
gancho, pero utilizamos una prioridad más baja (es decir, en11
lugar de10
. Las devoluciones de llamada se activan en orden de prioridad más alta (número más bajo) a prioridad más baja (número más alto), comenzando con la prioridad0
. Entonces, una devolución de llamada enganchada en prioridad11
se disparará después de una devolución de llamada enganchada en prioridad10
.Tenga en cuenta también que el
after_setup_theme
gancho en sí mismo se activa después delplugins_loaded
gancho, por lo que esta devolución de llamada seguirá anulando el tema principal, incluso si el tema principal_doing_it_wrong()
no está envolviendo dichas llamadas en una devolución de llamada adecuada, enganchado en un enlace apropiado.fuente
Si alguien quiere simplemente desarmar los tamaños de imagen adicionales, en lugar de cambiar las dimensiones, use remove_image_size (string $ name) , por ej.
fuente
En tu tema de chile deberías usar
add_action( 'after_setup_theme','new-name');
fuente
new-name
es un nombre de devolución de llamada no válido.