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_theme
hakiem, z domyślnym priorytetem (tj 10
.).
(Uwaga: jeśli połączenia nie są zawinięte w oddzwanianie, wówczas plugins_loaded
wysyłane są w pierwszej kolejności jako haczyk 10
).
Oto kluczowa część: plik motywu potomnego functions.php
jest 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_theme
haka, ale używamy niższego priorytetu (tj. 11
Zamiast 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 11
będzie uruchamiane po oddzwonienie przypisane do priorytetu 10
.
Należy również zauważyć, że after_setup_theme
sam hak odpala po tym plugins_loaded
hakiem, 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.