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 :
$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );
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:
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' );
Em seguida, a add_image_size()
chamada do tema principal é acionada no after_setup_theme
gancho, na prioridade padrão (ou seja 10
).
(Nota: se as chamadas não forem agrupadas em um retorno de chamada, serão acionadas no plugins_loaded
gancho, com prioridade 10
.)
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 suas add_image_size()
chamadas, eles serão substituídos pelas add_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:
function child_theme_setup() {
add_image_size( 'name', 400, 300, true );
}
add_action( 'after_setup_theme', 'child_theme_setup', 11 );
Observe que usamos o mesmo after_setup_theme
gancho, mas usamos uma prioridade mais baixa (ou seja, em 11
vez de 10
. 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 prioridade 11
dispara depois um retorno de chamada ligado à prioridade 10
.
Observe também que o after_setup_theme
gancho em si é acionado após o plugins_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.
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.