WordPress multisite plugin to synchronize posts, attachments, taxonomies, and cross-site relations between blogs using emitter / receiver rules, an async queue, and a global relations table.
Current version: 3.13.0
| Requirement | Notes |
|---|---|
| WordPress | Multisite install, 4.9+ (WP_Site_Query) |
| PHP | 8.3+ (see plugin header Requires PHP) |
| Scheduling | Server cron should drive the queue via WP-CLI (see Cron & queue) |
-
GitHub releases — ZIP from releases.
-
Composer — add to your project:
"require": { "bea/bea-content-sync-fusion": "*" }
-
Git clone — run
composer installat the plugin root (PHP dependencies includebeapi/gutenberg-serializer).
Network-activate the plugin (Network Admin → Plugins). Activation creates or updates global tables: bea_csf_relations, bea_csf_queue, bea_csf_queue_maintenance.
Some releases alter the queue table schema. Follow the notes in CHANGELOG.md (e.g. network deactivate / reactivate when required).
Use Network Admin to define synchronizations (emitters, receivers, post types, taxonomies, media behaviour). Metaboxes on individual sites control manual mode, exclusions, and attachment inclusion depending on settings.
BEA_CSF_MEDIA_FEATURE— defaults totrue; set tofalsebefore the plugin loads to disable shared media handling (seebea-content-sync-fusion.php).
Processing is queue-based and intended to run through WP-CLI. A reference Bash driver is included:
cron/cronjob.sh— arguments: network URL, WP-CLI binary, WordPress path, alternate queue flag, extra WP-CLI args.
Typical setup: run every minute on the server; adjust the CLI binary (wp, lando wp, etc.).
More informations on the wiki.
Command namespace: content-sync-fusion.
wp help content-sync-fusionRegistered subcommands:
| Command | Purpose |
|---|---|
content-sync-fusion queue |
Queue stats, flush / pull, list site URLs with queued work |
content-sync-fusion flush |
Flush / targeted sync (see wp help for flags) |
content-sync-fusion resync |
Resync content (e.g. --smart=true to iterate emitter blogs only) |
content-sync-fusion relation |
Mirror two sites / rebuild relations (e.g. after cloning) |
content-sync-fusion migration |
Migrate legacy meta-based relations to the relations table |
For flags such as --quantity, --alternativeq, or post type / taxonomy / attachment filters, run wp help content-sync-fusion <subcommand>.
Targets WordPress 4.9+ on multisite (including current 6.x releases while APIs remain compatible).
Dedicated addons load when these plugins are active:
- WooCommerce (products & variations)
- Polylang
- Advanced Custom Fields (including Gutenberg ACF blocks)
- Yoast SEO (e.g. meta images)
- Post Types Order
- The Events Calendar family
- Revisionize
- Multisite Clone Duplicator
- Gutenberg block serialization / sync
- Members (metabox compatibility)
bea_csf_upload_dir()— cached helper aroundwp_upload_dir()for multisite.register_synchronization( $args )— programmatic registration (see documentation).
Many bea_csf_* filters and actions exist in the codebase for capabilities, merge behaviour, fields, etc.
composer install
composer cs # PHPCS (phpcs.xml)
composer test-unit
composer test-wpunitFull history: CHANGELOG.md.
Built by Be API. This plugin is maintained without a promise of free support—please open an issue if needed.
Donations: PayPal.
GPL-2.0-or-later — see LICENSE.
