PBJ.TECH — WordPress Plugins

PBJ Studio Sync — User Guide

Version 2.9.5 · pbj.tech/wordpress-plugins

PBJ Studio Sync — Install & Usage Guide

Version 2.6.1

What this plugin does

PBJ Studio Sync pushes content one way, from a local WordPress Studio site (SQLite) to a live production site (MySQL). The same plugin installs on both sides and auto-detects which environment it is in:

Content moves over the WordPress REST API as native WP objects (posts, terms, meta, files), so the SQLite/MySQL differences are handled by WordPress itself — there is no raw SQL translation.

Requirements

Installation

  1. Install and activate pbj-studio-sync.zip on both the Studio site and the live site (Plugins → Add New → Upload Plugin → Activate).
  2. If a Studio install refuses to replace an existing copy ("destination directory already exists"), use the pbj-installer helper plugin or remove the old pbj-studio-sync folder first.

First-time setup

1. Verify the REST API on Live

On the live site, open Studio Sync → Dashboard and click Check / fix REST API. It rebuilds rewrite rules, sets permalinks to /%postname%/ if they were on "Plain" (which blocks REST routes), and self-tests /wp-json/. Wait for the green confirmation. If it still fails, the cause is outside the plugin — usually a security plugin blocking REST, or a server-config issue.

2. Create an Application Password on Live

On the live site: Users → Profile → Application Passwords. Add one named "Studio Sync" and copy the 24-character password (keep the spaces).

3. Configure Studio

On the Studio site: Studio Sync → Settings. Enter the live site URL, the live admin username, and the Application Password. Under "What to sync", confirm the content types you want pushed — posts, media, and Navigation menus are on by default; theme, plugin, Users and Settings (wp_options + theme mods) sync are optional. Save.

Users / Settings sync (2.0). These two clone the live site beyond content — settings includes theme_mods (footers/headers/customizer) and plugin configuration; users includes roles, profile meta, and password hashes. The plugin always protects the live site's site/home URL, active-plugins list, theme selection, and the operator's own login from being overwritten. Even so, test these directions against a staging copy before running them onto real production.

4. Test the connection

Studio Sync → Dashboard → Test connection. You should see a green panel showing the live site's URL, WP version, PHP version, and database engine.

Daily usage

Pushing to live

Studio Sync → Dashboard → Push to live now. The progress UI shows each stage in order: terms → uploads → posts → menus → theme → plugins → plugin states → settings → users → prune → deletions → commit.

Deletions

When you trash a post or delete a media file on Studio, the plugin records a "tombstone". The next push removes the same item from live by slug (including the underlying file for attachments). Untrashing a post before the next push cancels its tombstone.

Backups

Compare & Sync (2.0)

Studio Sync → Compare & Sync (Studio only). Click Load comparison to see a per-section count of Studio vs. Live — posts, media, terms, theme, plugins, settings, users, menus — with a "≠" marker on anything that differs.

  1. Tick the sections you want to move (rows that differ start checked).
  2. Choose a direction:
  1. Click Run sync and confirm.

Theme and plugin files aren't included in backups, so they're disabled in the Download direction — use Upload for those. Both sites must be on 2.0.0 for the comparison to load (the /summary endpoint is new in 2.0).

Auto-updates (optional)

Studio Sync → Settings → Auto-updates. Point at a GitHub repo (user/repo) or a JSON manifest URL. New versions then appear under Plugins → Installed Plugins with the normal "Update Now" button.

Troubleshooting

Where things live