[wp-trac] [WordPress Trac] #60375: Site Transfer Protocol
WordPress Trac
noreply at wordpress.org
Wed Jul 2 12:17:41 UTC 2025
#60375: Site Transfer Protocol
-------------------------+------------------------------
Reporter: zieladam | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Import | Version:
Severity: normal | Resolution:
Keywords: | Focuses:
-------------------------+------------------------------
Comment (by zieladam):
@dmsnell and I prototyped a full site-to-sync on CloudFest this year at
https://github.com/adamziel/zs-sync
We're focusing on other projects at the moment and not prioritizing this
work at the moment. I still wanted to share the progress as the ideas seem
solid:
* All the files and database rows are indexed in the database. The plugin
creatas a few additional database tables for different data types. They
all store a primary key, a version hash, global version number, and the
time of last scan.
* Indexing is done in small chunks, e.g. 10 or 100 database records at a
time on every nth request or via wp-cron. For performance reasons, the
database rows are indexed via a SQL query without selecting and
transforming rows in PHP.
* When two sites are connected, they use a wp-cron job to exchange deltas
and stream the underlying data diff in small chunks.
* Data exchange takes dependency graph into consideration, e.g. the media
files are transmitted before the new posts that embed them to avoid any
pages with missing images.
* Plugins will have hooks for resolving data dependencies and conflicts.
Hooks are not in there yet.
What's missing is establishing a secure connections between two sites.
Perhaps the initial release could lean on the token exchange provided by
@akirk's Friends plugin.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/60375#comment:35>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list