PHPackages                             aucor/polylang-copy-content - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. aucor/polylang-copy-content

ActiveWordpress-plugin

aucor/polylang-copy-content
===========================

Copy content, title and attachments when creating a new translation with Polylang in WordPress

1.0.0(6y ago)3715.7k—0%8[3 issues](https://github.com/aucor/polylang-copy-content/issues)GPL-2.0-or-laterPHP

Since Sep 30Pushed 6y ago9 watchersCompare

[ Source](https://github.com/aucor/polylang-copy-content)[ Packagist](https://packagist.org/packages/aucor/polylang-copy-content)[ Docs](https://github.com/aucor/polylang-copy-content)[ RSS](/packages/aucor-polylang-copy-content/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)DependenciesVersions (7)Used By (0)

Polylang Copy Content
=====================

[](#polylang-copy-content)

**Contributors:** [Teemu Suoranta](https://github.com/TeemuSuoranta), [leemon](https://github.com/theleemon) (this plugin uses bits from [Sync Attachments for Polylang](https://github.com/theleemon/sync-attachments-for-polylang))

**Tags:** polylang, media, attachments, admin, copy, content

**License:** GPLv2 or later

Description
-----------

[](#description)

**⚠️ Status: In maintenance but not in very active development. [Polylang Pro](https://polylang.pro/) has this feature built-in and actively developed so I recommend supporting the creator of Polylang. ⚠️**

Polylang Copy Content is an add-on for the multilingual WordPress plugin [Polylang](https://wordpress.org/plugins/polylang/). This add-on let's you copy the content and the title WPML style when creating a new translation. All the images and galleries are translated automatically if you use media translations.

Basic feature list:

- Copy title, content and attachments for new translation
- Choose the language you want to copy from (make translation from the translated version's editor)
- Get useful translation markup for captions and title like (es translation) to be overwritten
- Media translation works for images, captions, galleries and featured image (if you use media translations)
- Use various filters to modify copied content in code (to be documented and expanded)
- Translations are done with Polylang's functions, no messing around

How copying content works?
--------------------------

[](#how-copying-content-works)

Copy content basically just copies and pastes all the content first. In this phase this plugin won't need to understand any markup so any shortcodes etc are copied.

On second phase the plugin finds markup with regex, takes out the image IDs, makes or fetches the translation of the image and replaces these inside content. So the plugin can only replace translated images on the markup that this plugin undestands which is the default WordPress markup. If you have plugins that have their own fancy markup, blocks or shortcodes, this plugin copies them but will not process them.

**Why processing images matter?** If you have media translations enabled, you are able to translate captions and alternative texts. These texts live mainly in attachments so while copying the content we need to also replace the attachments to avoid messing up the original images (overwriting the captions etc).

Copy Content + Classic Editor
-----------------------------

[](#copy-content--classic-editor)

Works just fine. Copy content takes care of:

- Embedded images
- Galleries
- Featured image

Copy Content + Gutenberg
------------------------

[](#copy-content--gutenberg)

Works okay. Copy conten takes care of:

- Image blocks
- Gallery blocks
- Featured image

Copy content won't process

- Media &amp; Text block (no captions)
- Custom ACF blocks
- Other blocks

If you get "invalid content" error on some block after copying content, you might need to safe draft and refresh the page and it will go away. No idea why as the markup doesn't seem to change.

Installation
------------

[](#installation)

Download and activate. That's it. You will need Polylang, too (d'oh).

**Composer:**

```
$ composer require aucor/polylang-copy-content

```

**With composer.json:**

```
{
  "require": {
    "aucor/polylang-copy-content": "*"
  },
  "extra": {
    "installer-paths": {
      "htdocs/wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
    }
  }
}

```

Issues and feature whishlist
----------------------------

[](#issues-and-feature-whishlist)

**Issues:**

- Translating a link to a featured media page seems to make a broken link sometimes.
- Adding translation markup (fr translation) might be someting everybody won't like. Maybe I should drop this in future or make it optional.

**Feature whishlist:**

- UI to handel wheteher you want to copy things and choose the language
- Making the plugin itself translatable
- Ability to copy images to translation after translation has been created (if new images are added to the original version)
- Undo copying (remove image translations)
- ⭐⭐ Get integrated to Polylang ⭐⭐ Polylang Pro has similar function that was build unknowingly of this plugin.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity37

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~250 days

Total

5

Last Release

2514d ago

Major Versions

0.1.4 → 1.0.02019-06-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/a2b38383e426392e0c0238c2f1924f00d54005ad2d1055aff5a63fb8fd49b3da?d=identicon)[underdude](/maintainers/underdude)

![](https://www.gravatar.com/avatar/e5cda4dc82223eef9b8360d1d558773856ed36725c8ca2f0d6a6db23cb377133?d=identicon)[Teemu Suoranta](/maintainers/Teemu%20Suoranta)

![](https://www.gravatar.com/avatar/67da7c6634250ac0d91894c83401748dc125034342d2a394a40b0ab5fec92301?d=identicon)[mhgx](/maintainers/mhgx)

---

Top Contributors

[![TeemuSuoranta](https://avatars.githubusercontent.com/u/9577084?v=4)](https://github.com/TeemuSuoranta "TeemuSuoranta (2 commits)")[![strarsis](https://avatars.githubusercontent.com/u/9271436?v=4)](https://github.com/strarsis "strarsis (1 commits)")

### Embed Badge

![Health badge](/badges/aucor-polylang-copy-content/health.svg)

```
[![Health](https://phpackages.com/badges/aucor-polylang-copy-content/health.svg)](https://phpackages.com/packages/aucor-polylang-copy-content)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
