Skip to content

BeAPI/bea-content-sync-fusion

Repository files navigation

Be API Github Banner

BEA - Content Sync Fusion

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

Requirements

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)

Installation

  1. GitHub releases — ZIP from releases.

  2. Composer — add to your project:

    "require": {
      "bea/bea-content-sync-fusion": "*"
    }
  3. Git clone — run composer install at the plugin root (PHP dependencies include beapi/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.

Major upgrades (queue schema)

Some releases alter the queue table schema. Follow the notes in CHANGELOG.md (e.g. network deactivate / reactivate when required).

Configuration

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.

Optional constant

  • BEA_CSF_MEDIA_FEATURE — defaults to true; set to false before the plugin loads to disable shared media handling (see bea-content-sync-fusion.php).

Cron & queue

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.

WP-CLI

Command namespace: content-sync-fusion.

wp help content-sync-fusion

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

WordPress compatibility

Targets WordPress 4.9+ on multisite (including current 6.x releases while APIs remain compatible).

Third-party integrations

Dedicated addons load when these plugins are active:

Developer API (overview)

  • bea_csf_upload_dir() — cached helper around wp_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.

Development

composer install
composer cs      # PHPCS (phpcs.xml)
composer test-unit
composer test-wpunit

Changelog

Full history: CHANGELOG.md.

Who?

Built by Be API. This plugin is maintained without a promise of free support—please open an issue if needed.
Donations: PayPal.

License

GPL-2.0-or-later — see LICENSE.

Packages

 
 
 

Contributors

Languages