- สถานะ
- แก้ไขแล้ว
- แก้ไขใน
- WP Rocket lastest version
ภาพรวมของปัญหา
ฟังก์ชัน rocket_clean_domain รับพารามิเตอร์หนึ่งตัว: $lang
โดยปกติจะถูกเรียกใช้โดยไม่มีพารามิเตอร์ แต่มีกรณีหนึ่งที่มีการส่งพารามิเตอร์ผิดไป:
wp-rocket/inc/common/purge.php บรรทัดที่ 22
add_action( 'update_option_theme_mods_' . get_option( 'stylesheet' ), 'rocket_clean_domain' ); // When location of a menu is updated
ฟิลเตอร์นี้ส่งพารามิเตอร์ที่ไม่ถูกต้องไปยัง rocket_clean_domain (เป็น array แทนที่จะเป็น string)
วิธีแก้ปัญหาชั่วคราว
ในไดเรกทอรีธีมของคุณ ให้ไปตามเส้นทางนี้และเปิดไฟล์นี้ (wp-rocket/inc/functions/files.php)
ค้นหาโค้ดด้านล่าง:
function rocket_clean_domain( $lang = '' ) {
$urls = ( ! $lang || is_object( $lang ) ) ? get_rocket_i18n_uri() : get_rocket_i18n_home_url( $lang );
วิธีแก้ปัญหาหนึ่งคือการเพิ่ม is_array() ลงในเงื่อนไขนั้น ดูโค้ดด้านล่าง:
function rocket_clean_domain( $lang = '' ) {
$urls = ( ! $lang || is_object( $lang ) || is_array( $lang ) ) ? get_rocket_i18n_uri() : get_rocket_i18n_home_url( $lang );
ด้วยวิธีนี้ เราจะไม่ส่งอาร์เรย์เป็นพารามิเตอร์ และทุกอย่างจะทำงานได้ตามที่คาดไว้