- Trạng thái
- Đang mở
- Được báo cáo cho
- WPML Multilingual CMS 4.7.6
Tổng quan về lỗi
Khi sử dụng WPML trên một trang web có tiền tố cơ sở dữ liệu tùy chỉnh (không phải “wp_” mặc định) và 30 ngôn ngữ trở lên, bạn có thể gặp lỗi cơ sở dữ liệu khi truy cập bảng điều khiển dịch thuật.
Điều này xảy ra do tiền tố cơ sở dữ liệu được mã hóa cứng trong mã plugin WPML.
Giải pháp tạm thời
Vui lòng đảm bảo bạn có bản sao lưu đầy đủ cho trang web của mình trước khi tiếp tục.
Mở:
/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/WordPress/Component/Item/Application/Query/SearchQuery/QueryBuilder/ManyLanguagesStrategy/SearchQueryBuilder.php
Tìm:
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
Thay thế bằng:
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
Thay đổi này đảm bảo rằng truy vấn sử dụng đúng tiền tố tùy chỉnh thay vì wp_ được mã hóa cứng.
Một vị trí khác là trong:
/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/WordPress/Component/Item/Application/Query/SearchQuery/QueryBuilder/ManyLanguagesStrategy/SearchPopulatedTypesQueryBuilder.php
Tìm:
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
Thay thế bằng:
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