- סטטוס
- פתוח
- דווח עבור
- 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