Plugin
Freshet Pages Plus Pro
The gripe
The Pages screen cannot tell me where a page lives, which template renders it, what changed last, or who changed it.
The plugin
Should put those answers in the list table I already use, and add nothing else.
WordPress' admin list tables were built for a blog with forty posts. Freshet Pages Plus makes them work on a site with four hundred pages nested six deep: a sortable Modified column, the URL path under every title, parent and template filters, path search and a Duplicate action, on Pages, Posts and every public custom post type.
It is for the people who look after a site with years of content behind it and a dozen editors on it. There is no settings screen. Each enhancement appears on the screens where it applies and nowhere else, and nothing it does touches the front end.
Free, and the whole plugin
Six additions to the list table, every one of them free. Nothing in the download is locked, limited or time-barred.
A sortable Modified column
The full URL path under every title
/team/andré/ rather than a full URL with percent-escapes. Published
and private posts show their real permalink, and the line is a link that opens in
a new tab. Drafts, pending and scheduled posts show the pretty path they will get,
as plain text, because there is nothing to open yet. The path is collected while
the table renders and injected by a small script in the admin footer, so a row
that Quick Edit replaces loses its path line until the next reload.
The path line is in the docs.
A parent filter and a sortable Parent column
A Template column and filter
Path search
pricing and you get every page whose path contains it, wherever it
sits. Search about/team and you get that branch. Search a section
slug and you get everything beneath it, not just the page whose own slug matches,
which is the point on a site where Overview exists eleven times. Spaces are also
tried as hyphens. It is added as an OR on top of the normal title and content
search, so nothing you could find before stops being findable, and a search in
Trash does not start returning published pages.
Path search is in the docs.
Duplicate, one at a time or in bulk
Needs WordPress 6.0 and PHP 7.4 or newer. Download it from wordpress.org, or read the source on GitHub. Or Try it in WordPress Playground first: a throwaway site in your browser, the plugin active and a page tree already on the Pages screen. Where each column and filter shows up, what Duplicate copies and the hooks it attaches to are in the Pages Plus docs.
What Pro gets you
Pages Plus Pro is for larger sites — move, re-template and republish whole branches with a preview before anything changes and an undo after; take the tree with you as CSV, JSON or an outline; copy a branch; save the views you keep coming back to; see what nobody has touched since.
Bulk changes, with a preview and an undo
Tick the pages, pick Change…: parent, template, status, author, a term, a password, or publish and unpublish a whole subtree. You see every page's before and after, and the path it would land on, before anything is written; a page that would break is shown and skipped, the rest go through. Every batch has an Undo, and the newest hundred stay on record.
Edit fields in the row
Every field Quick Edit offers — title, slug, date, author, password or private, parent, order, template, comments, status — laid out as Quick Edit lays them out, changed from the list without opening the editor. The new path and each change show before you save, and a save is a batch of one, so it has the same Undo. A switch under Pages Plus → Settings hides core's Quick Edit where Edit fields stands in for it.
Tree export
The list as CSV, JSON or a Markdown outline — the whole tree, or exactly the view your filters left on screen — nested the way the Pages screen nests it. Or Copy as text, for a message or a ticket.
Duplicate a branch
A page and everything beneath it, copied as drafts in one go, with the preview first: every page that will be created and where it will land. Beside the original, at the top level, or under any page you choose.
Saved views
The filters you keep setting by hand — a branch, a template, a status, a search — kept under a name, per post type. Five ship with the plugin and you save as many of your own as you like; one you save is yours alone until you make it global. Pin one and it stands in the All | Published | Drafts row and on the Pages Plus menu — your menu: your pins are not your colleague's.
Stale pages
Stale is one of the views that ship, pinned from the start: the Pages list itself, filtered to what nobody has edited in a year. A Stale column on each row says how long it has been and whose it is, with that owner's share of the set one click away, and the date is the toolbar's own Modified-before field. Export and the bulk actions are the list's, so they are already there.
Pro requires PHP 8.1 or newer. On an older PHP the Pro build says so in wp-admin and the free features keep working; nothing breaks. What Pro adds, in the docs.
Something not covered here? The FAQ has a Pages Plus section.