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

כל התקלות הידועות →