WordPress settings
The Settings section of a WordPress site (/sites/:srv/:dom/settings) is the
full wp-admin Settings surface, rebuilt inside MZPanel: General,
Writing, Reading, Discussion, Media and Permalinks — including
the many options WordPress’s own REST API never exposes (timezone, permalink
structure, comment moderation, media sizes, search-engine visibility). It’s
available on all plans.
Change a setting, step by step
Section titled “Change a setting, step by step”- Open a WordPress site and go to Settings. The page loads the site’s current options into six collapsible boxes — General, Writing, Reading, Discussion, Media and Permalinks — with General expanded.
- Click a box header to expand it (one box is open at a time). Edit the fields you want: type text, flip a toggle, pick from a dropdown, or use the pickers (site icon, timezone, homepage page).
- As soon as anything changes, a Unsaved changes bar floats at the bottom of the page and each box header shows a badge with its number of pending edits.
- Click Save changes. MZPanel sends only the keys you actually changed; the bar disappears when the write completes. Discard reverts every unsaved edit.
What else you can do
Section titled “What else you can do”- General — set the Site title and Tagline, upload a Site icon (favicon), change the Administration email, and pick the timezone, first day of the week and date/time format (with a live “site time now” preview).
- Writing — default post category (pulled from the site’s real categories), default post format, and the “notify linked blogs” pingback flag.
- Reading — choose whether the homepage shows latest posts or a static page (then pick the front page and posts page from your published pages), set posts per page, feed length, full-text vs excerpt feeds, and the search-engine visibility switch.
- Discussion — comment and pingback defaults, moderation rules (manual approval, previously-approved author, link threshold), auto-close and threaded comments, comment paging, email notifications, and avatars with a rating.
- Media — thumbnail, medium and large image sizes, thumbnail cropping, and month/year upload folders.
- Permalinks — the URL structure for posts (Day/Month/Numeric/Post-name or a
custom structure), a category base / tag base, and an MZPanel extra —
Remove category base (turns
/category/slug/into/slug/, RankMath-style).
How it works
Section titled “How it works”Both reading and writing go through one job kind — wp.content — against a single
custom endpoint served by the mzpanel-agent mu-plugin on the site:
| Action | Method + path | What runs on the box |
|---|---|---|
| Load settings | GET mzpanel/v1/options | mu-plugin reads the allowlisted options |
| Save changes | POST mzpanel/v1/options | mu-plugin writes each changed key via update_option() |
The agent shells the same request the dashboard drives:
wp <domain> content <method> mzpanel/v1/options [--data <json>] --json. Writes go
through WordPress’s update_option(), so its sanitize_option() filters and hooks
run exactly as they would in wp-admin — and a permalink change flushes the rewrite
rules for you. The mu-plugin only ever touches a fixed allowlist of option
keys; siteurl/home are deliberately excluded because changing them can lock a
site out. State lives in the site’s own WordPress database — MZPanel stores nothing
of its own here.
CLI & automation
Section titled “CLI & automation”Every field on this page maps to the same two calls on the box. SSH in and run them directly, or let an on-box AI (ClaudeCode) run them:
mz wp <domain> content GET mzpanel/v1/options --jsonmz wp <domain> content POST mzpanel/v1/options \ --data '{"blogname":"My site","posts_per_page":10}' --json--data carries a JSON object of the keys to change; only allowlisted keys are
written, and the response returns the full option set. See
The mz CLI and the command catalog.
Gotchas & troubleshooting
Section titled “Gotchas & troubleshooting”- This is a WordPress-only page. Settings reads and writes WordPress options through the site’s WP bridge — it doesn’t apply to static, PHP, Node or other non-WP site types.
- Plain permalinks aren’t available — on purpose. MZPanel manages the site over
the WordPress REST API, which needs pretty permalinks. The Permalinks box
won’t offer “Plain”, and Save blocks any structure that doesn’t start with
/. If a site is already on Plain permalinks the page shows a REST-API banner instead of the settings — set a pretty structure inwp-admin → Settings → Permalinks, then reload. - The admin email takes effect immediately. Unlike wp-admin (which sends a confirmation link), changing the Administration email here applies at once.
- Changing permalinks flushes rewrite rules. Saving a new structure is a heavier operation than the other fields; give it a moment.
- Only changed keys are sent. Save transmits just the fields you edited, so concurrent edits elsewhere aren’t clobbered — but that also means a field left untouched here is never re-written.
- Can’t load settings? A “failed to load” banner usually means the agent is offline or the site’s WP bridge needs re-priming — open any content page (Posts, Pages) once to warm it, then retry.
Related
Section titled “Related”- Site overview — the per-site health cockpit.
- The mz CLI — driving a box from the command line.