Polylang ist ein sehr beliebtes WordPress Plugin zur Erweiterung von Websites um mehrere Sprachen. Da die Architektur etwas gewöhnungsbedürftig ist, fasse ich in diesem Beitrag wichtige Infos für WordPress-Entwickler zusammen.
Post Übersetzungen
Polylang speichert die Verlinkung von Übersetzungen in Taxonomien.
Die Verlinkungen der Übersetzungen der posts (also Seiten, Beiträge etc.) werden in der Taxonomie post_translations
gespeichert.
Die Verlinkungen der Übersetzungen von Taxonomien (also Tags/Stichworte, Kategorien etc.) werden in der Taxonomie term_translations
gespeichert.
Hier ein MySQL Beispiel, wie man die Übersetzung eines Posts direkt aus der Datenbank laden kann. Hier soll die chinesische Übersetzung (zh
) des posts mit der ID 6101895
geholt werden.
SELECT * FROM `wp_posts` WHERE post_status = 'publish' AND ID IN ( SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description, '"zh";i:', -1), ';',1) FROM wp_term_taxonomy WHERE `taxonomy` = 'post_translations' AND description LIKE '%:6101895;%' )
Das sollte man natürlich nur tun, wenn es gute Gründe dafür gibt. Normalerweise sollte man die Funktionen aus der Polylang Funktionsreferenz verwenden.
String Translations
Die String Translations (also Übersetzungen von Wörtern, die nicht anderweitig übersetzt werden können) sind als serialisiertes Array unter dem meta key _pll_strings_translations
in der postmeta Datenbanktabelle gespeichert.
Und zwar in der postmeta der Polylang MO-Sprachdatei der jeweiligen Sprache, ein post Eintrag mit post_type polylang_mo