Estou trabalhando em um tema que possui vários tamanhos de imagem definidos corretamente usando:
add_image_size( 'name', 500, 200, true );
Gostaria de substituir esses tamanhos definidos do tema filho:
add_image_size( 'new-name', 400, 300, true );
Eu sei que posso adicionar novos tamanhos, mas se eu adicionar o mesmo nome, ou seja:
add_image_size( 'name', 400, 300, true );
Em seguida, a chamada de função pai é usada - a criança é ignorada - a adição de regras extras adiciona imagens extras que nunca serão usadas - não é tão ruim, mas não é eficiente.
Existe uma função para cancelar o registro de um tamanho de imagem adicional?
Felicidades!
Raio
add_image_size()
chamadas estão apenas nuasfunctions.php
ou estão encapsuladas adequadamente dentro de um retorno de chamada e conectadasafter_setup_theme
? Saber o que é fundamental para responder à sua pergunta.Respostas:
A
add_image_size( $name, $width, $height, $crop )
função é graciosa o suficiente para lidar com várias chamadas usando a mesma$name
. Simplesmente substitui o valor existente :Isso significa que tudo o que você precisa fazer para substituir a definição do tamanho da imagem personalizada do Tema pai é garantir que sua chamada seja
add_image_size()
acionada após a chamada do Tema pai .Supondo que o Tema Principal faça o seguinte:
Em seguida, a
add_image_size()
chamada do tema principal é acionada noafter_setup_theme
gancho, na prioridade padrão (ou seja10
).(Nota: se as chamadas não forem agrupadas em um retorno de chamada, serão acionadas no
plugins_loaded
gancho, com prioridade10
.)Aqui está a parte crítica: o
functions.php
arquivo do tema filho é analisado antes do tema pai ; portanto, se você usar os mesmos ganchos para acionar suasadd_image_size()
chamadas, eles serão substituídos pelasadd_image_size()
chamadas do tema pai .A solução é usar um gancho posterior ou uma prioridade mais baixa , para garantir que a
add_image_size()
chamada do Tema filho seja acionada após a do Tema pai.Isso deve funcionar, independentemente de como o Tema pai aciona suas chamadas:
Observe que usamos o mesmo
after_setup_theme
gancho, mas usamos uma prioridade mais baixa (ou seja, em11
vez de10
. Os retornos de chamada são acionados na ordem de prioridade mais alta (número menor) para prioridade mais baixa (número mais alto), começando com prioridade0
. Assim, uma chamada de retorno enganchado prioridade11
dispara depois um retorno de chamada ligado à prioridade10
.Observe também que o
after_setup_theme
gancho em si é acionado após oplugins_loaded
gancho, portanto esse retorno de chamada ainda substituirá o Tema pai, mesmo se o Tema pai_doing_it_wrong()
não estiver agrupando essas chamadas em um retorno de chamada apropriado, conectado a um gancho apropriado.fonte
Se alguém quiser simplesmente desconfigurar os tamanhos de imagem adicionais, em vez de alterar as dimensões, use remove_image_size (string $ name) , por exemplo
fonte
No seu tema chile, você precisaria usar
add_action( 'after_setup_theme','new-name');
fonte
new-name
é um nome de retorno de chamada inválido.