ฟังก์ชั่นเป็นพอสง่างามจัดการกับหลายสายโดยใช้แบบเดียวกัน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
hook ตามลำดับความสำคัญเริ่มต้น (เช่น10
)
(หมายเหตุ: หากการโทรไม่ได้อยู่ในการโทรกลับการโทรนั้นจะทำการplugins_loaded
แฮ็กที่ระดับความสำคัญ10
)
นี่คือส่วนที่สำคัญ: ไฟล์ของชุดรูปแบบเด็กfunctions.php
จะถูกวิเคราะห์ก่อนชุดรูปแบบหลักดังนั้นหากคุณใช้ hooks ตัวเดียวกันเพื่อเริ่มการadd_image_size()
โทรของคุณพวกเขาจะถูกแทนที่ด้วยการadd_image_size()
เรียกชุดรูปแบบของผู้ปกครอง
วิธีแก้ไขคือใช้ hook ในภายหลังหรือลำดับความสำคัญที่ต่ำกว่าเพื่อให้แน่ใจว่าการ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
hook เดียวกันแต่ใช้ลำดับความสำคัญต่ำกว่า (เช่น11
แทนcallbacks จะเริ่มทำงานตาม10
ลำดับความสำคัญที่สูงขึ้น (หมายเลขที่ต่ำกว่า) ไปยังลำดับความสำคัญที่ต่ำกว่า (หมายเลขที่สูงกว่า) เริ่มต้นด้วยลำดับความสำคัญโทรกลับติดยาเสพติดเข้ามาในลำดับความสำคัญ0
11
10
ยังทราบว่าafter_setup_theme
เบ็ดตัวเองยิงหลังจากplugins_loaded
เบ็ดเพื่อโทรกลับนี้จะยังคงแทนที่ธีมแม่แม้ว่าธีมผู้ปกครอง_doing_it_wrong()
โดยไม่ได้ตัดสายดังกล่าวในการเรียกกลับที่เหมาะสมติดยาเสพติดเข้ามาในเบ็ดที่เหมาะสม
add_image_size()
โทรเพียงแค่นั่งเปล่าfunctions.php
ๆ หรือแนบไปกับการโทรกลับอย่างถูกต้องafter_setup_theme
หรือไม่ การรู้ว่าสิ่งใดสำคัญต่อการตอบคำถามของคุณ