Choose Which Custom Fields Polylang Copies to Translations
Tells Polylang to copy (and keep in sync) extra custom fields when you create or update a translation, and to stop copying fields that should differ per language.
Opens WPIDE on
Code
$wpide_copy = array( 'price', 'sku', 'event_date' ); // Copy to translations.
$wpide_skip = array( '_yoast_wpseo_title', 'seo_description' ); // Never copy.
add_filter( 'pll_copy_post_metas', function ( $metas ) use ( $wpide_copy, $wpide_skip ) {
$metas = array_merge( (array) $metas, $wpide_copy );
return array_values( array_diff( array_unique( $metas ), $wpide_skip ) );
} );
Notes
$wpide_copy are always copied; $wpide_skip are never copied. Syncing happens when "Custom fields" is ticked in Languages > Settings > Synchronization.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.