# 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.

- Type: PHP
- Runs: Run everywhere
- Category: [Multilingual](https://wpide.com/library/category/multilingual/)
- Tags: polylang, custom-fields, sync
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/pll-copy-custom-fields/

## Code

```php
$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 use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Choose Which Custom Fields Polylang Copies to Translations" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
