Ця add_image_size( $name, $width, $height, $crop )
функція є достатньо витонченою для обробки декількох дзвінків, використовуючи однакові $name
. Він просто перезаписує існуюче значення :
$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );
Отже, це означає, що все, що вам потрібно зробити, щоб змінити визначення батьківської теми Темою на спеціальний розмір зображення - це забезпечити, щоб ваш виклик add_image_size()
спрацьовував після виклику батьківської теми .
Якщо припустити, що батьківська тема робить так:
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' );
Потім add_image_size()
виклик батьківської Теми спрацьовує на after_setup_theme
гачок, за пріоритетом за замовчуванням (тобто 10
).
(Примітка. Якщо виклики не завернуті у зворотний дзвінок, вони запускаються на plugins_loaded
гачок, у пріоритеті 10
.)
Ось найважливіша частина: файл дочірньої теми functions.php
розбирається перед батьківською Темою , тому якщо ви використовуєте ті самі гачки для add_image_size()
виклику ваших дзвінків, вони будуть перекрито add_image_size()
викликами батьківської теми .
Рішення полягає в тому, щоб використовувати пізніший гачок або нижчий пріоритет , щоб гарантувати, що add_image_size()
виклик Теми дитини починається після батьківської Теми.
Це має зробити трюк, незалежно від того, як батьківська Тема виконує свої дзвінки:
function child_theme_setup() {
add_image_size( 'name', 400, 300, true );
}
add_action( 'after_setup_theme', 'child_theme_setup', 11 );
Зверніть увагу , що ми використовуємо один і той же after_setup_theme
гачок, але використовувати більш низький пріоритет (тобто 11
замість 10
. Callbacks вогонь в порядку від вищого пріоритету (нижній номер) , щоб знизити пріоритет (вище число), починаючи з пріоритетом 0
. Таким чином , зворотний виклик навішується пріоритет 11
буде стріляти після того, як зворотний виклик, підключений до пріоритету 10
.
Слід також зазначити , що after_setup_theme
сам гачок спрацьовує після того, як на plugins_loaded
гачок, так що цей зворотний виклик буде по- , як і раніше перевизначити батьківську тему, навіть якщо батьківська тема є _doing_it_wrong()
, чи не обертати таких викликів у відповідній функції зворотного виклику, гачками в відповідний гачок.
add_image_size()
дзвінки просто сидять голіfunctions.php
, або вони належним чином загорнені всередині зворотного дзвінка, і підключеніafter_setup_theme
? Знаючи, що важливо для відповіді на ваше запитання.