PHPackages                             moderntribe/square1-blog-copier - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. moderntribe/square1-blog-copier

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

moderntribe/square1-blog-copier
===============================

Blog copier for square one

4.2.3(5mo ago)01.4kGPL-2.0-onlyPHPPHP &gt;=7.4

Since Jun 11Pushed 5mo ago19 watchersCompare

[ Source](https://github.com/moderntribe/square1-blog-copier)[ Packagist](https://packagist.org/packages/moderntribe/square1-blog-copier)[ RSS](/packages/moderntribe-square1-blog-copier/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (46)Used By (0)

Blog Copier
===========

[](#blog-copier)

The blog copier is a WP Multisite tool to copy a template blog to a new blog. All content and settings will be copied from the source blog to the new blog.

Usage
-----

[](#usage)

Enable the blog copier by registering the `Blog_Copier_Definer` and `Blog_Copier_Subscriber` in the core plugin. The lines to do so should already exist, conditionally loaded, in `\Tribe\Project\Core::extend_definers()` and `\Tribe\Project\Core::extend_subscribers()`.

Once enabled, the blog copier can be accessed in the network admin, under the "Sites" menu.

Architecture
------------

[](#architecture)

The blog copier depends on queues for processing. Initiating a copy adds a task to the queue to run the first step of the copy. As each step completes, it will add the next step to the queue.

The configuration for the copy is stored as JSON in the content of a hidden post on blog 1. This JSON is a representation of a `Copy_Configuration` object. Each task will be passed the post ID of this object, which it can reference for the original form submission data (e.g., what is the new blog's domain?) or for state that has been built by previous steps in the process (e.g., what is the new blog's ID?).

The tasks that need to run for the copy are defined in a `Task_Chain` object, configured in the `Blog_Copier_Definer`. If you need to add additional steps to the copy, create a new `Task` for that step and set up a new definer to override the value of `\Tribe\Libs\Blog_Copier\Blog_Copier_Definer::TASK_CHAIN`

As each task finishes, it must trigger an action to signify that it has completed, passing the class name of the task and the args that were originally passed to the `Task`'s `handle()` method.

```
do_action( Copy_Manager::TASK_COMPLETE_ACTION, static::class, $args );

```

If the action has failed and the copy cannot continue, trigger the failure action, passing a WP\_Error object as the third parameter to the action.

```
do_action( Copy_Manager::TASK_ERROR_ACTION, static::class, $args, $error );

```

Automated Testing
-----------------

[](#automated-testing)

Some tests require multisite to run successfully. To enable these tests, run the integration test suite with the flag `--env multisite`.

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance72

Regular maintenance activity

Popularity14

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 51.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 ~55 days

Recently: every ~300 days

Total

44

Last Release

160d ago

Major Versions

0.0.2 → v2.0.02019-10-07

2.1.2 → v3.0.02020-09-01

3.6.0 → 4.0.32022-08-17

PHP version history (3 changes)0.0.1PHP ^7.0

v3.1.0PHP ^7.2

4.0.3PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/6aa10556f9e67f0a27a22542d7baab7914c2dae633502bf25fcc877e62bb19c5?d=identicon)[jbrinley](/maintainers/jbrinley)

---

Top Contributors

[![defunctl](https://avatars.githubusercontent.com/u/1066195?v=4)](https://github.com/defunctl "defunctl (45 commits)")[![jbrinley](https://avatars.githubusercontent.com/u/288845?v=4)](https://github.com/jbrinley "jbrinley (28 commits)")[![mmcachran](https://avatars.githubusercontent.com/u/375068?v=4)](https://github.com/mmcachran "mmcachran (6 commits)")[![dpellenwood](https://avatars.githubusercontent.com/u/1151082?v=4)](https://github.com/dpellenwood "dpellenwood (2 commits)")[![nickpelton](https://avatars.githubusercontent.com/u/289422?v=4)](https://github.com/nickpelton "nickpelton (2 commits)")[![tarecord](https://avatars.githubusercontent.com/u/6947218?v=4)](https://github.com/tarecord "tarecord (2 commits)")[![tr1b0t](https://avatars.githubusercontent.com/u/14128420?v=4)](https://github.com/tr1b0t "tr1b0t (2 commits)")

### Embed Badge

![Health badge](/badges/moderntribe-square1-blog-copier/health.svg)

```
[![Health](https://phpackages.com/badges/moderntribe-square1-blog-copier/health.svg)](https://phpackages.com/packages/moderntribe-square1-blog-copier)
```

PHPackages © 2026

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