Import multilingual data from Polylang to WPML
- Backup your database! There is a reason why this plugin has the version number 0.1
- Deactivate Polylang.
- Activate both WPML Multilingual Blog/CMS and the (Migrate Polylang to WPML) plugins. If you also want to migrate string translations, activate WPML String Translation plugin.
- Finish the WPML Wizard (you will see it right after activation)
- If you have custom post types, go to WPML > Translation options (or WPML > Translation Management > Multilingual Content Setup) and set those types to be translatable.
- Go to Tools > Migrate from Polylang to WPML
- Click button "Migrate" and wait until the migration process is completed (it might take longer based on the size of the content you are migrating)
- Done. You can uninstall the (Migrate Polylang to WPML) plugin.
- Configures WPML to have the same languages as they were in Polylang.
- Migrates all your posts, pages and custom post types and their translations.
- Migrates all your taxonomies (categories, tags and custom taxonomies) and their translations.
- Migrates your strings (only those which has been translated in Polylang and WPMl String Translation recognized and registered as correct string)
- Migrate widgets: You will need to activate WPML Widgets plugin.
- Migrate menus: Use the menu synchronization between languages option in WPML.
- Migrate other settings: This will be implemented progressively. For the time being, you are free to adjust them manually after the migration process is completed.
- please report any issue or feature request at WPML forum
- please check Wiki page for known issues
The development tools require PHP 7.4 or newer and Composer 2. Install the locked dependencies with:
composer install --no-plugins --no-scriptsRun all local checks with:
composer checkThe individual commands are composer test, composer phpcs, and composer phpstan. PHPUnit uses WordPress function mocks, so it does not require a WordPress installation or database. PHPStan analyzes the production plugin at level 3 with WordPress and WPML stubs. PHPCS initially covers the new test and analysis support code; the legacy production files will be introduced separately after their existing violations are addressed.
CI runs the unit tests on the supported endpoints, PHP 7.4 and 8.5. Coding standards and static analysis run on PHP 8.5.
- Fixed taxonomy migration for languages whose Polylang slugs differ from their WPML language codes, including Portuguese and Chinese.
- Fixed language-code handling for post translation groups, including groups without a translation in the site's default language.
- Prevented orphaned Polylang taxonomy translation groups from overwriting valid WPML relationships.
- Improved PHP 8 compatibility when migrating incomplete or corrupt Polylang data.
- Added capability and nonce checks to all migration and data-deletion AJAX actions.
- Escaped admin output and sanitized the
.htaccessnotice dismissal cookie. - Prevented direct access to the plugin's PHP files.
- Automatically set the translation preference to "translate" for translated custom post types.
- Added the support for duplicated (synced) posts.
- Fixed a fatal error "Uncaught TypeError: Cannot access offset of type string on string".
- Fixed several PHP warnings.
- Fixed an issue with not terminating import when importing terms.
- Resolved an issue with migration stopping on nginx server.
- Fixed the migration of Chinese languages and Portuguese (pt-pt and pt-br) languages.
- Fixed a case when the user has set synchronisation options (comp-3271).
- Initial release.