WPML
สถานะ
เปิด
รายงานสำหรับ
WPML Multilingual CMS 4.7.6

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

เมื่อใช้ WPML บนเว็บไซต์ที่มีคำนำหน้าฐานข้อมูลแบบกำหนดเอง (ไม่ใช่ค่าเริ่มต้น “wp_”) และมี 30 ภาษาขึ้นไป คุณอาจพบข้อผิดพลาดของฐานข้อมูลเมื่อไปที่แดชบอร์ดการแปล

ปัญหานี้เกิดขึ้นเนื่องจากคำนำหน้าฐานข้อมูลถูกฮาร์ดโค้ดไว้ในโค้ดของปลั๊กอิน WPML

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

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

เปิด:

/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/WordPress/Component/Item/Application/Query/SearchQuery/QueryBuilder/ManyLanguagesStrategy/SearchQueryBuilder.php

ค้นหา:

LEFT JOIN wp_icl_translations target_t
   ON target_t.trid = source_t.trid
       AND target_t.language_code IN ({$gluedEscapedLanguageCodes})
LEFT JOIN wp_icl_translation_status target_ts
   ON target_ts.translation_id = target_t.translation_id

แทนที่ด้วย:

LEFT JOIN {$this->queryPrepare->prefix()}icl_translations target_t
   ON target_t.trid = source_t.trid
       AND target_t.language_code IN ({$gluedEscapedLanguageCodes})
LEFT JOIN {$this->queryPrepare->prefix()}icl_translation_status target_ts
   ON target_ts.translation_id = target_t.translation_id

การเปลี่ยนแปลงนี้ช่วยให้แน่ใจว่าคิวรีใช้คำนำหน้าแบบกำหนดเองที่ถูกต้องแทนการใช้ wp_ ที่ฮาร์ดโค้ดไว้

อีกตำแหน่งหนึ่งอยู่ใน:

/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/WordPress/Component/Item/Application/Query/SearchQuery/QueryBuilder/ManyLanguagesStrategy/SearchPopulatedTypesQueryBuilder.php

ค้นหา:
      LEFT JOIN wp_icl_translations target_t
         ON target_t.trid = source_t.trid
             AND target_t.language_code IN ({$gluedEscapedLanguageCodes})
       LEFT JOIN wp_icl_translation_status target_ts
         ON target_ts.translation_id = target_t.translation_id

แทนที่ด้วย:

      LEFT JOIN {$this->queryPrepare->prefix()}icl_translations target_t
         ON target_t.trid = source_t.trid
             AND target_t.language_code IN ({$gluedEscapedLanguageCodes})
       LEFT JOIN {$this->queryPrepare->prefix()}icl_translation_status target_ts
         ON target_ts.translation_id = target_t.translation_id

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