Skip to content

Themes

The theme command group works exactly like plugin: it tracks WordPress.org themes as a lockfile in loopress.json and installs them on the site through Composer + WPackagist. As with plugins, only exact-version pins reproduce identically across environments; a "latest" entry is re-resolved on each push.

{
"themes": {
"generatepress": "3.4.0"
}
}

Loopress manages installed theme versions only. It never switches the active theme (that can break a live site hard).

Every command below also accepts the common flags: --env, --json, and --yes where it applies.

Add a theme to loopress.json, pinned to "latest" unless you pass --version. Local file only.

Terminal window
lps theme add generatepress
lps theme add generatepress --version 3.4.0

Pull everything theme related that can be pulled: versions, then Global Styles. Templates and parts have no pull.


Push everything theme related, in order: versions, then templates and parts, then Global Styles. Accepts --force.


Report version drift between the themes on WordPress and loopress.json. Exits non-zero on drift, so it can gate a CI job.


The versions-only half of pull and push: version pull snapshots the installed themes into loopress.json, pinned to their live versions, and version push installs the manifest via Composer + WPackagist. version push accepts --force and --dry-run.

--force allows downgrades and lets Loopress take over a theme installed by hand. The same limits as plugins apply: WordPress.org themes only, no rollback of database migrations, no multisite.

If your repo has a composer.json, it is authoritative: lps theme version pull pins live versions into it as wpackagist-theme/<slug> entries (same rules as plugins: constraints kept, themes not on WordPress.org skipped), and lps theme version push defers to lps composer push.