Skip to content
WordPress settings Edit a WordPress site's General, Writing, Reading, Discussion, Media and Permalinks settings — the whole wp-admin Settings surface, from MZPanel.

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.

  1. 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.
  2. 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).
  3. 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.
  4. Click Save changes. MZPanel sends only the keys you actually changed; the bar disappears when the write completes. Discard reverts every unsaved edit.
  • 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.
  • Mediathumbnail, 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).

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:

ActionMethod + pathWhat runs on the box
Load settingsGET mzpanel/v1/optionsmu-plugin reads the allowlisted options
Save changesPOST mzpanel/v1/optionsmu-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.

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:

Terminal window
mz wp <domain> content GET mzpanel/v1/options --json
mz 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.

  • 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 in wp-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.