A multilingual import that creates posts without linking them is worse than a manual copy: you get orphan translations and a languages menu that does not switch. The Import WP Polylang add-on adds a Polylang section so each row gets a language and a link to its translation group as the CSV or XML is processed.
Free add-on. Enable the post type under Languages → Settings → Custom post types and Taxonomies or the Polylang section will not appear for that template.
Polylang CSV import: language + translation columns
Enable Fields on the Polylang section. Two controls matter:
- Language — ISO 639-1 code (
en,fr,it) from a column, or a fixed language for the whole file - Translation — how this row connects to another: post ID, slug, or name (title)
A minimal sheet is title, content, language, translation. English rows leave translation empty (they are the default). French rows put the English title (or ID) in translation and set Translation Field Type to Name (or ID). Import WP links the group. Full example table: Polylang translations docs.
That is the “link Polylang translation groups” job in one importer, not a second plugin to associate posts afterwards.
Import translated posts (and products) with Polylang
Works on posts, pages, and CPTs once Polylang has them enabled. WooCommerce products can use the same language/translation fields alongside the WooCommerce product template.
Import the default language first if the translation column references titles that must already exist. Alternatively put all languages in one file in an order that creates the source row before its translations — the sample in the docs does exactly that.
Re-runs should use a unique identifier per language row (slug per locale, or a stable external ID) so you update “Page un” without creating a third French copy.
Keep a multilingual WordPress CSV import in sync
Nightly feeds must not break translation groups. Map language every time. Keep the translation pointer stable (ID is safest once posts exist; name is fine for the first load). Skip unchanged rows.
WPML sites should use the WPML importer, not this add-on.
