WordPress 7.1 กับ WP Rocket เกิด Fatal Error แก้อย่างไร? สาเหตุและวิธีแก้ Error Cloudflare
WordPress 7.1 กับ WP Rocket เกิด Fatal Error แก้อย่างไร? สาเหตุและวิธีแก้ Error Cloudflare

WordPress 7.1 กับ WP Rocket เกิด Fatal Error แก้อย่างไร? สาเหตุและวิธีแก้ Error Cloudflare

หลังจาก WordPress 7.1 เปิดตัวอย่างเป็นทางการเมื่อวันที่ 19 สิงหาคม 2026 ผู้ดูแลเว็บไซต์ WordPress บางส่วนพบปัญหา Fatal Error จาก WP Rocket หลังจากอัปเดต WordPress โดยเฉพาะเว็บไซต์ที่ใช้งาน WP Rocket ร่วมกับฟังก์ชันที่เกี่ยวข้องกับ Cloudflare และ CDN

หนึ่งใน Error ที่พบมีข้อความเกี่ยวกับ PHP substr() และมักชี้ไปยังไฟล์ Cloudflare.php ของ WP Rocket ที่บรรทัด 562

Uncaught TypeError: substr(): Argument #1 ($string) must be of type string, int given

ปัญหานี้ได้รับการยืนยันจากทีมผู้พัฒนา WP Rocket ว่าเป็นปัญหาด้าน Compatibility ระหว่าง WP Rocket กับ WordPress 7.1 และมีการออกเวอร์ชันแก้ไขแล้ว โดยสามารถแก้ไขได้ด้วยการอัปเดต WP Rocket เป็น เวอร์ชัน 3.23.2.2 หรือใหม่กว่า

อ่านรายละเอียดจากเอกสารอย่างเป็นทางการของ WP Rocket

สารบัญเนื้อหา

WordPress 7.1 ทำให้ WP Rocket เกิด Fatal Error จริงหรือไม่?

ใช่ ปัญหานี้เกี่ยวข้องกับ WordPress 7.1 โดยตรง โดยหลังจาก WordPress 7.1 เปิดตัว มีการรายงานปัญหาความเข้ากันได้กับ WP Rocket ในบางกรณี

หากคุณเพิ่งอัปเดตเว็บไซต์จาก WordPress เวอร์ชันก่อนหน้าเป็น WordPress 7.1 แล้วเว็บไซต์เริ่มแสดง Fatal Error จาก WP Rocket ทันที ควรตรวจสอบเวอร์ชันของ WP Rocket เป็นอันดับแรก

โดยเฉพาะหาก Error มีคำว่า substr(), Cloudflare.php หรือ TypeError อยู่ใน Error Log

อาการของ WP Rocket ที่พบหลังอัปเดต WordPress 7.1

เว็บไซต์ที่ได้รับผลกระทบอาจแสดง Error แตกต่างกันเล็กน้อย ขึ้นอยู่กับสภาพแวดล้อมของเว็บไซต์และ PHP Version ที่ใช้งาน แต่ Error ที่เกี่ยวข้องกับปัญหานี้มักมีลักษณะดังต่อไปนี้

  • substr() expects parameter 1 to be string, int given
  • substr(): Argument #1 ($string) must be of type string, int given
  • Uncaught TypeError
  • PHP Fatal error
  • Error ที่เกิดขึ้นในไฟล์ Cloudflare.php
  • Error ที่ระบุบรรทัด 562

ตัวอย่าง Error Log ที่เกี่ยวข้องกับปัญหานี้:

PHP Fatal error: Uncaught TypeError:
substr(): Argument #1 ($string) must be of type string,
int given in
/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php:562

หาก Error Log ของเว็บไซต์มีข้อความลักษณะนี้ โดยเฉพาะเมื่อเริ่มเกิดขึ้นหลังจากอัปเดตเป็น WordPress 7.1 ให้ตรวจสอบ WP Rocket ก่อนที่จะเริ่มแก้ไข Theme, PHP หรือ Cloudflare

ทำไม WordPress 7.1 ถึงทำให้ WP Rocket Error?

สาเหตุหลักของปัญหาเกี่ยวข้องกับการเปลี่ยนแปลงพฤติกรรมบางส่วนของ WordPress 7.1 ที่ส่งผลต่อค่าที่ WP Rocket นำไปประมวลผล

ในกรณีที่ได้รับผลกระทบ ค่า $key ที่ WP Rocket ได้รับสามารถเป็นค่าประเภท Integer หรือตัวเลขได้ ในขณะที่โค้ดเดิมของ WP Rocket คาดว่าจะได้รับค่าเป็น String

จากนั้น WP Rocket นำค่าดังกล่าวไปใช้กับฟังก์ชัน PHP substr()

เมื่อค่าที่ส่งเข้าไปเป็น Integer แทน String PHP จึงเกิด TypeError และทำให้เว็บไซต์เกิด Fatal Error

ปัญหานี้จึงไม่ได้หมายความว่า WordPress 7.1 มีปัญหากับ PHP ทุกเวอร์ชัน หรือว่า Cloudflare เสีย แต่เป็นปัญหาด้าน Compatibility ระหว่าง WordPress 7.1 และ WP Rocket เวอร์ชันที่ยังไม่ได้รับการแก้ไข

WP Rocket เวอร์ชันไหนที่แก้ปัญหา WordPress 7.1 แล้ว?

ทีม WP Rocket ได้ออก WP Rocket 3.23.2.2 เพื่อแก้ไขปัญหา Fatal Error ที่เกิดขึ้นกับ WordPress 7.1

ดังนั้น หากเว็บไซต์ของคุณใช้ WordPress 7.1 และยังใช้ WP Rocket เวอร์ชันเก่าที่ไม่ได้รับการแก้ไข ควรอัปเดต WP Rocket ให้เร็วที่สุด

เวอร์ชันที่ควรใช้งาน:

  • WordPress: 7.1
  • WP Rocket: 3.23.2.2 หรือใหม่กว่า

การอัปเดต WP Rocket เป็นเวอร์ชันที่ได้รับการแก้ไขแล้วเป็นวิธีที่แนะนำมากที่สุด เนื่องจากไม่จำเป็นต้องแก้ไข Source Code ของ Plugin ด้วยตัวเอง

วิธีแก้ WordPress 7.1 + WP Rocket Fatal Error

วิธีที่ 1: อัปเดต WP Rocket เป็นเวอร์ชัน 3.23.2.2 หรือใหม่กว่า

วิธีนี้เป็นวิธีที่แนะนำมากที่สุด เพราะเป็นการแก้ไขจากต้นทางโดยใช้ WP Rocket เวอร์ชันที่ทีมผู้พัฒนาปล่อยออกมาเพื่อแก้ปัญหา Compatibility โดยเฉพาะ

เข้าสู่ WordPress Dashboard แล้วไปที่:

Dashboard > Plugins > Installed Plugins

ค้นหา WP Rocket และตรวจสอบเวอร์ชันที่ติดตั้งอยู่

หากมี Update ให้ทำการอัปเดต WP Rocket เป็น 3.23.2.2 หรือใหม่กว่า

หลังจากอัปเดตเสร็จแล้ว ให้ตรวจสอบหน้าเว็บไซต์ทั้ง Frontend และ Backend รวมถึงทดสอบระบบ Cache และฟังก์ชันที่เกี่ยวข้องกับ Cloudflare อีกครั้ง

วิธีที่ 2: หากเข้า WordPress Admin ไม่ได้

กรณี Fatal Error ทำให้ไม่สามารถเข้าสู่ WordPress Dashboard ได้ สามารถปิด WP Rocket ชั่วคราวผ่าน FTP, SFTP หรือ File Manager ของ Hosting

เข้าไปยังโฟลเดอร์:

/wp-content/plugins/

จากนั้นเปลี่ยนชื่อโฟลเดอร์:

wp-rocket

เป็น:

wp-rocket-off

เมื่อ WordPress ไม่พบโฟลเดอร์ Plugin ในชื่อเดิม ระบบจะไม่สามารถโหลด WP Rocket ได้ ซึ่งช่วยให้สามารถกลับเข้าสู่ WordPress Admin เพื่อดำเนินการแก้ไขต่อได้

หลังจากเข้าสู่ Dashboard ได้แล้ว ควรติดตั้งหรืออัปเดต WP Rocket เป็นเวอร์ชันที่ได้รับการแก้ไขปัญหาแล้ว ก่อนเปิดใช้งานระบบ Cache อีกครั้ง

วิธีที่ 3: ใช้ WordPress Recovery Mode

หาก WordPress ตรวจพบ Fatal Error ระบบอาจแสดง Recovery Mode ให้ผู้ดูแลเว็บไซต์เข้าสู่ระบบและจัดการกับ Plugin ที่ทำให้เกิดปัญหา

หาก WP Rocket เป็น Plugin ที่ทำให้เกิด Error สามารถปิดการทำงานของ WP Rocket ชั่วคราว จากนั้นอัปเดต Plugin ให้เป็นเวอร์ชันที่ได้รับการแก้ไข

ถ้า WP Rocket ไม่มีปุ่ม Update ต้องทำอย่างไร?

ในกรณีที่หน้า Plugins ไม่แสดง Update ของ WP Rocket ให้ตรวจสอบสิทธิ์ของ License และการเชื่อมต่อของเว็บไซต์กับระบบอัปเดตของ WP Rocket ก่อน

หากยังไม่สามารถอัปเดตผ่าน WordPress Dashboard ได้ สามารถดาวน์โหลดเวอร์ชันล่าสุดจากบัญชี WP Rocket แล้วติดตั้ง Plugin ใหม่ผ่าน WordPress หรือ FTP ได้

สิ่งสำคัญคือควรตรวจสอบให้แน่ใจว่าเวอร์ชันที่ติดตั้งเป็น 3.23.2.2 หรือใหม่กว่า ก่อนเปิดใช้งานบน WordPress 7.1

สามารถแก้ไฟล์ Cloudflare.php เองได้หรือไม่?

ในทางเทคนิคสามารถแก้ไขโค้ดของ WP Rocket เพื่อป้องกันไม่ให้ Integer ถูกส่งเข้า substr() ได้ แต่ไม่ควรใช้วิธีนี้เป็นแนวทางถาวร

เหตุผลคือ WP Rocket เป็น Plugin ที่ได้รับการอัปเดตอยู่เรื่อย ๆ และการอัปเดตครั้งต่อไปอาจเขียนทับไฟล์ที่เราแก้ไขเอง

ตัวอย่างเช่น การแก้ปัญหาประเภทนี้อาจเป็นการแปลงค่าที่ได้รับให้เป็น String ก่อนส่งเข้า substr() แต่การแก้ไข Source Code โดยตรงควรทำเฉพาะกรณีฉุกเฉินและโดยผู้ที่มีความเข้าใจ PHP

วิธีที่ปลอดภัยกว่าคืออัปเดต WP Rocket ไปยังเวอร์ชันที่ทีมผู้พัฒนาปล่อยออกมาเพื่อแก้ปัญหาโดยตรง

ต้อง Downgrade WordPress 7.1 หรือไม่?

โดยทั่วไปไม่จำเป็นต้อง Downgrade WordPress 7.1 หากสามารถอัปเดต WP Rocket เป็นเวอร์ชันที่แก้ไขแล้วได้

การย้อนกลับ WordPress ไปยังเวอร์ชันก่อนหน้าอาจช่วยแก้ปัญหาเฉพาะหน้าได้ แต่ไม่ใช่วิธีที่ควรเลือกเป็นอันดับแรก หากมี Plugin Version ที่แก้ไข Compatibility Issue แล้ว

สำหรับเว็บไซต์ Production วิธีที่เหมาะสมกว่าคือ:

  1. สำรองข้อมูลเว็บไซต์
  2. ตรวจสอบ WP Rocket Version
  3. อัปเดต WP Rocket เป็น 3.23.2.2 หรือใหม่กว่า
  4. ตรวจสอบ Plugin และ Theme ที่สำคัญ
  5. ทดสอบเว็บไซต์หลังอัปเดต

WordPress 7.1 ใช้งานร่วมกับ WP Rocket ได้หรือไม่?

ใช้งานร่วมกันได้ เมื่อใช้ WP Rocket เวอร์ชันที่มีการแก้ไขปัญหา Compatibility แล้ว

ปัญหาที่รายงานไม่ได้หมายความว่า WordPress 7.1 และ WP Rocket ไม่สามารถใช้งานร่วมกันได้ แต่เป็นปัญหาที่เกิดขึ้นกับ WP Rocket เวอร์ชันที่มีโค้ดส่วนดังกล่าวก่อนที่จะได้รับการแก้ไข

ดังนั้นเว็บไซต์ที่ต้องการใช้ WordPress 7.1 ควรตรวจสอบว่า WP Rocket เป็นเวอร์ชันล่าสุดก่อนดำเนินการอัปเดต WordPress

WordPress 7.1 กับ Cloudflare เกี่ยวข้องกันอย่างไร?

ชื่อไฟล์ Cloudflare.php ใน Error Log อาจทำให้เข้าใจผิดว่า Cloudflare เป็นสาเหตุของปัญหา แต่ในกรณีนี้ควรแยกให้ออกระหว่าง Cloudflare Service กับ Cloudflare Integration ใน WP Rocket

Error ที่รายงานเกิดขึ้นภายในไฟล์ของ WP Rocket:

wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php

ดังนั้นไม่ควรสรุปว่า Cloudflare มีปัญหากับ WordPress 7.1 โดยตรง

หากเว็บไซต์ของคุณใช้ Cloudflare และ WP Rocket แล้วพบ Error Cloudflare.php:562 หลังอัปเดต WordPress 7.1 ให้ตรวจสอบ WP Rocket ก่อน

เว็บไซต์ที่ใช้ PHP 8.x จะได้รับผลกระทบหรือไม่?

Error ที่เกิดขึ้นเป็น PHP TypeError ซึ่งเกิดจากการส่งชนิดข้อมูลที่ไม่ตรงกับที่ฟังก์ชันคาดหวัง

ข้อความ:

substr(): Argument #1 ($string) must be of type string, int given

หมายความว่า substr() ได้รับ Integer ในตำแหน่งที่ควรเป็น String

อย่างไรก็ตาม ไม่ควรสรุปว่าปัญหานี้เป็นเพียงปัญหาของ PHP Version เพราะปัญหาหลักอยู่ที่ Compatibility ระหว่าง WordPress 7.1 และ WP Rocket เวอร์ชันที่ได้รับผลกระทบ

ควรทำอย่างไรก่อนอัปเดต WordPress 7.1?

การอัปเดต WordPress Core บนเว็บไซต์ Production ควรตรวจสอบ Compatibility ของ Plugin และ Theme ก่อนเสมอ โดยเฉพาะ Plugin ที่ทำงานในระดับ Cache, CDN, Security และ Optimization

ก่อนอัปเดต WordPress 7.1 แนะนำให้ตรวจสอบรายการต่อไปนี้:

  • สำรองข้อมูล WordPress
  • สำรองฐานข้อมูล MySQL
  • ตรวจสอบ PHP Version
  • ตรวจสอบ WP Rocket Version
  • ตรวจสอบ Theme Version
  • ตรวจสอบ Plugin ที่สำคัญ
  • ตรวจสอบ Cloudflare และ CDN Integration
  • ทดสอบบน Staging Site หากมี
  • ตรวจสอบ Error Log หลังอัปเดต

โดยเฉพาะเว็บไซต์ที่ใช้ WordPress + WP Rocket + Cloudflare ควรตรวจสอบ WP Rocket ก่อนอัปเดต WordPress 7.1 เพื่อป้องกันปัญหาเว็บไซต์ล่มหลังการอัปเดต

วิธีตรวจสอบว่าเว็บไซต์กำลังเจอปัญหานี้หรือไม่

หากเว็บไซต์มีปัญหา ให้ตรวจสอบ PHP Error Log หรือ Server Error Log แล้วค้นหาคำว่า:

wp-rocket
Cloudflare.php
substr()
TypeError
line 562

หากพบข้อความหลายรายการที่เกี่ยวข้องกัน โดยเฉพาะ:

Cloudflare.php:562

และ:

substr(): Argument #1 ($string) must be of type string, int given

ให้ตรวจสอบ WP Rocket Version ทันที เพราะข้อความเหล่านี้ตรงกับ Error Log ที่เกี่ยวข้องกับ Compatibility Issue กับ WordPress 7.1

คำถามที่พบบ่อยเกี่ยวกับ WordPress 7.1 และ WP Rocket

WordPress 7.1 ทำให้ WP Rocket พังหรือไม่?

WordPress 7.1 ทำให้ WP Rocket บางเวอร์ชันเกิด Compatibility Issue ได้ โดยเฉพาะกรณีที่เกี่ยวข้องกับโค้ดในส่วน Cloudflare Integration ซึ่งสามารถทำให้เกิด PHP Fatal Error

Fatal Error substr() ใน WP Rocket คืออะไร?

เป็น PHP TypeError ที่เกิดขึ้นเมื่อ WP Rocket ส่งค่าประเภท Integer เข้าไปยัง substr() ในขณะที่ฟังก์ชันต้องการค่า String ส่งผลให้ PHP หยุดการทำงานในจุดดังกล่าว

WP Rocket 3.23.2.2 แก้ปัญหา WordPress 7.1 หรือไม่?

ใช่ WP Rocket ระบุอย่างเป็นทางการว่า Issue นี้ได้รับการแก้ไขใน WP Rocket 3.23.2.2

ถ้าใช้ WP Rocket กับ WordPress 7.1 ต้องทำอะไร?

ควรตรวจสอบและอัปเดต WP Rocket เป็นเวอร์ชัน 3.23.2.2 หรือใหม่กว่า จากนั้นทดสอบเว็บไซต์และระบบ Cache หลังการอัปเดต

ต้องปิด Cloudflare หรือไม่?

โดยทั่วไปไม่จำเป็นต้องปิด Cloudflare เพื่อแก้ปัญหานี้ เพราะ Error เกิดขึ้นในส่วน Cloudflare Integration ของ WP Rocket ไม่ได้หมายความว่า Cloudflare Service เป็นสาเหตุโดยตรง

ต้อง Downgrade WordPress 7.1 หรือไม่?

ไม่จำเป็น หากสามารถอัปเดต WP Rocket เป็นเวอร์ชันที่ได้รับการแก้ไขแล้วได้ การ Downgrade ควรเป็นเพียงทางเลือกชั่วคราวในกรณีที่ไม่สามารถอัปเดต Plugin ได้

ถ้าเข้า WordPress Admin ไม่ได้ควรทำอย่างไร?

สามารถปิด WP Rocket ชั่วคราวโดยเปลี่ยนชื่อโฟลเดอร์ Plugin ผ่าน FTP, SFTP หรือ File Manager จากนั้นเข้าสู่ WordPress Admin และอัปเดต WP Rocket เป็นเวอร์ชันที่แก้ไขปัญหาแล้ว

สรุป WordPress 7.1 + WP Rocket Fatal Error

ปัญหา WordPress 7.1 กับ WP Rocket Fatal Error เป็น Compatibility Issue ที่เกิดขึ้นหลัง WordPress 7.1 เปิดตัว โดยหนึ่งใน Error ที่สามารถพบได้คือ:

substr(): Argument #1 ($string) must be of type string, int given

และ Error สามารถชี้ไปยัง:

wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php:562

สาเหตุเกี่ยวข้องกับค่าที่ WP Rocket ได้รับซึ่งสามารถเป็น Integer ในบางกรณี และถูกส่งเข้า substr() ในรูปแบบที่ไม่ถูกต้อง

ข่าวดีคือปัญหานี้ได้รับการแก้ไขแล้วโดยทีม WP Rocket ใน WP Rocket 3.23.2.2

ดังนั้น หากเว็บไซต์ของคุณกำลังใช้งาน WordPress 7.1 + WP Rocket และพบ Fatal Error ลักษณะดังกล่าว สิ่งแรกที่ควรทำคือ ตรวจสอบและอัปเดต WP Rocket เป็นเวอร์ชัน 3.23.2.2 หรือใหม่กว่า

สำหรับเว็บไซต์ Production ไม่ควรแก้ไขไฟล์ Plugin แบบถาวรหรือรีบ Downgrade WordPress หากยังมีวิธีแก้ด้วยการอัปเดต Plugin เพราะการใช้เวอร์ชันที่ผู้พัฒนาปล่อยมาเพื่อแก้ Compatibility โดยตรงเป็นแนวทางที่เหมาะสมกว่า


แหล่งข้อมูลอ้างอิง:

ดิดต่อทำเว็บไซต์ WordPress