Bỏ qua để đến nội dung
Posts & pages Manage a WordPress site's posts and pages — a fast list plus a full-screen editor — with no wp-admin login.

Posts & pages

Nội dung này hiện chưa có sẵn bằng ngôn ngữ của bạn.

The Posts and Pages sections of a WordPress site (/sites/:srv/:dom/posts and /sites/:srv/:dom/pages) are a fast, searchable content list backed by a full-screen editor. MZPanel talks to WordPress directly — no wp-admin login, no child plugin, no page-builder dependency — so you can write, publish and tidy up content without ever leaving the panel. Available on any WordPress site.

  1. Open Posts (or Pages) from the site’s left rail and click New post (New page). The full-screen editor opens on its own route — the panel rail and top bar step aside so you get a distraction-free writing pane.
  2. Type a title, then write in the body canvas. The editor is a rich Tiptap surface that round-trips through WordPress blocks, so what you write saves as real Gutenberg block markup.
  3. Set the essentials in the General rail on the right: Status, Slug, and (for posts) Categories and Tags. Add an optional Excerpt.
  4. Click Save draft to keep working, or Publish to go live (the button reads Update once the item is already published). A Saved tick and a Last saved timestamp confirm each write.
  5. Use Back to return to the list, or the slide-in menu (bottom-left Expand menu) to jump straight to another post or page without leaving the editor.

On the list (/posts or /pages):

  • Filter by status — All / Published / Drafts / Pending / Scheduled — and search across titles. The list is paginated (20 per page) and reads live from the site.
  • Row actions (on hover): Edit, SEO, View (opens the live URL), and Trash (a soft delete you can restore).
  • Bulk actions: tick rows, then Publish, Draft or Trash them all at once from the floating bar.

In the editor:

  • Categories & tags — pick from existing terms or create a new tag inline (posts only; pages have no taxonomy).
  • SEO — the SEO button opens the same per-post SEO panel used across the site (title, meta description and more), keyed to the saved post.
  • Preview / View — open the live or draft URL in a new tab.
  • Move to trash — a two-click confirm at the bottom of the settings rail.

Posts and pages split reads from writes so the list stays fast while edits stay correct:

  • The list reads through a native, direct-DB path: the dashboard calls GET /v1/servers/:id/wp/list (scope site), and the agent reads post metadata straight from the site’s database over a pooled connection — no per-call PHP or wp-cli bootstrap, so even large sites page instantly. Categories and tags load the same way (…/wp/terms).
  • Every edit writes through the wp.content job. The agent proxies WordPress’s own REST API (wp/v2/posts, wp/v2/pages, wp/v2/categories, …) via the bundled mzpanel-agent mu-plugin, elevated to admin context — so WordPress runs its normal sanitisation and hooks. Nothing is stored in MZPanel; WordPress remains the source of truth.
  • The editor body flows as WordPress block markup end-to-end: content.raw loads into Tiptap, which serialises back to blocks on save, so complex blocks survive a round trip.

Content is driven by the wp … content command on the box — the same engine the editor uses. The path and method map 1:1 to the WordPress REST API. SSH in and run them, or let an on-box AI (ClaudeCode) run the same commands:

Terminal window
mz wp example.com content GET wp/v2/posts?per_page=20 --json # list posts
mz wp example.com content GET wp/v2/posts/42?context=edit --json # read one
mz wp example.com content POST wp/v2/posts \
--data '{"title":"Hello","content":"<p>Hi</p>","status":"draft"}' --json
mz wp example.com content PUT wp/v2/posts/42 --data '{"status":"publish"}' --json
mz wp example.com content DELETE wp/v2/posts/42 --json # trash

Swap posts for pages (or categories/tags) to hit the matching resource. Always pass --json for machine output. See The mz CLI and the command catalog.

  • Some editor fields are display-only for now. The Featured image, Author, Discussion, Format and Publish (schedule) rows, the in-rail SEO tab and the AI assist tab are mock-first surfaces that don’t persist yet. The fields that do save are title, body, status, slug, excerpt, categories and tags — plus the real SEO panel opened from the toolbar SEO button. Use Open/Preview in WordPress for anything block-heavy or not yet wired.
  • Trash is a soft delete. The Trash action moves an item to the WordPress trash (recoverable in wp-admin), not a permanent delete.
  • Needs the agent online. Both the list and the editor read and write live through the site’s agent; when it’s offline the editor shows an “agent offline” notice and won’t save.
  • WordPress-only. These sections only appear for WordPress sites; static, PHP, Node, Python and Go site types have no content list.
  • Add-on positioning. Fleet-wide content and AI generation are planned as a paid WP & AI add-on; billing isn’t wired yet, so per-site posts and pages are fully usable today.