Ta add_image_size( $name, $width, $height, $crop )funkcja jest wystarczająco płynna, aby obsługiwać wiele połączeń przy użyciu tego samego $name. Po prostu nadpisuje istniejącą wartość :
$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );
Oznacza to, że wszystko, co musisz zrobić, aby zastąpić definicję niestandardowego rozmiaru obrazu Motywu nadrzędnego, to upewnić się, że Twoje wywołanie jest add_image_size()uruchamiane po wywołaniu Motywu nadrzędnego .
Zakładając, że motyw nadrzędny to lubi:
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' );
Następnie add_image_size()wywołanie motywu nadrzędnego jest uruchamiane z after_setup_themehakiem, z domyślnym priorytetem (tj 10.).
(Uwaga: jeśli połączenia nie są zawinięte w oddzwanianie, wówczas plugins_loadedwysyłane są w pierwszej kolejności jako haczyk 10).
Oto kluczowa część: plik motywu potomnego functions.phpjest analizowany przed motywem nadrzędnym , więc jeśli użyjesz tych samych haczyków do uruchamiania add_image_size()połączeń, zostaną one zastąpione add_image_size()wywołaniami motywu rodzica .
Rozwiązaniem jest użycie późniejszego haka lub niższego priorytetu , aby zapewnić, że add_image_size()wywołanie Motywu podrzędnego będzie uruchamiane za Motywem nadrzędnym.
To powinno załatwić sprawę, niezależnie od tego, w jaki sposób motyw nadrzędny uruchamia swoje wywołania:
function child_theme_setup() {
add_image_size( 'name', 400, 300, true );
}
add_action( 'after_setup_theme', 'child_theme_setup', 11 );
Zauważ, że używamy tego samego after_setup_themehaka, ale używamy niższego priorytetu (tj. 11Zamiast 10. Oddzwanianie jest uruchamiane w kolejności od wyższego priorytetu (niższy numer) do niższego priorytetu (wyższy numer), zaczynając od priorytetu 0. Więc oddzwanianie podłączone do priorytetu 11będzie uruchamiane po oddzwonienie przypisane do priorytetu 10.
Należy również zauważyć, że after_setup_themesam hak odpala po tym plugins_loadedhakiem, więc ta zwrotna będzie nadal zastąpić Temat nadrzędny, nawet jeśli rodzic Temat jest _doing_it_wrong()przez nie owijając takich połączeń w odpowiednim oddzwonienia, haczykowate do odpowiedniego haka.
add_image_size()połączenia tylko siedzą nagofunctions.php, czy są odpowiednio opakowane w wywołanie zwrotne i podłączoneafter_setup_theme? Wiedza, która jest kluczowa dla odpowiedzi na twoje pytanie.