WPML
สถานะ
เปิด
รายงานสำหรับ
WPML Multilingual CMS 4.6.4
แท็กหัวข้อ
Bug

ภาพรวมของปัญหา

การอัปเดตเป็น WPML 4.6.4 บนเซิร์ฟเวอร์ที่มีระบบแคช OpCache อาจทำให้เกิดข้อผิดพลาดร้ายแรงที่ไม่คาดคิดเมื่อใช้งานระบบหลังบ้านของคุณ โดยเฉพาะอย่างยิ่งเมื่อใช้งาน deployment pipeline

2023/06/22 02:36:16 [error] 359706#359706: *507646 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught TypeError: WPML\User\UsersByCapsRepository::__construct(): Argument #2 ($languagePairs) must be of type WPML\User\LanguagePairs\ILanguagePairs, WPML_Language_Pair_Records given, called in .../wp-content/plugins/sitepress-multilingual-cms/classes/container/class-config.php on line 63 and defined in .../wp-content/plugins/sitepress-multilingual-cms/classes/user/UsersByCapsRepository.php:18

วิธีแก้ปัญหาชั่วคราว

โปรดตรวจสอบให้แน่ใจว่าคุณมีการสำรองข้อมูลแบบเต็มสำหรับไซต์ของคุณก่อนดำเนินการต่อ

ตัวเลือกที่ 1


การรีสตาร์ทเซิร์ฟเวอร์ PHP ของคุณน่าจะช่วยแก้ไขปัญหานี้ได้ โปรดติดต่อผู้ให้บริการเซิร์ฟเวอร์ของคุณและขอรีสตาร์ทบริการ PHP-FPM

ตัวเลือกที่ 2

1. ตรวจสอบว่ามีไฟล์ใหม่หรือไม่

  • เปิด ../wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php

  • ตรวจสอบว่าไฟล์ถูกวางอย่างถูกต้องหรือไม่ โดยควรมีโค้ดนี้ในบรรทัดที่ 14:
    class WPML_Language_Pair_Records implements ILanguagePairs {

    แทนที่จะเป็น:

    class WPML_Language_Pair_Records {


  • หากไม่เป็นเช่นนั้น แสดงว่าอาจมีปัญหาในกระบวนการปรับใช้และคุณจำเป็นต้องตรวจสอบ
2. หากคุณเห็นว่าเนื้อหาไฟล์ถูกต้อง

คุณสามารถเลือกที่จะยกเลิก OPCache ของคุณสำหรับไฟล์นั้นโดยเฉพาะได้


  • เรียกใช้สิ่งนี้จากสคริปต์ที่ให้บริการผ่าน http (ไม่ใช่ CLI/SSH):
    opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);

3. สุดท้าย ตรวจสอบว่าคุณไม่มีโฟลเดอร์ /Language/ หลงเหลืออยู่

  • เปิดโฟลเดอร์ /wp-content/plugins/sitepress-multilingual-cms/classes/ ของคุณ

  • ค้นหาโฟลเดอร์ /Language/ ที่หลงเหลืออยู่ซึ่งเป็นตัวพิมพ์ใหญ่

  • หากเป็นเช่นนั้น โปรดลบไดเรกทอรี /Language/ และตรวจสอบให้แน่ใจว่าไดเรกทอรี /language/ มีไฟล์จาก WPML 4.6.6 เวอร์ชันที่เผยแพร่

หากปัญหายังคงอยู่ โปรดติดต่อฝ่ายสนับสนุนของ WPML จะเป็นประโยชน์อย่างยิ่งหากคุณ ส่งเนื้อหา phpinfo() ของคุณมาให้เรา

ปัญหาที่ทราบแล้วทั้งหมด →