Freshet Studio Pages Plus

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
Added after the Date column on every post type the plugin touches. Each cell shows the modified date, then a muted second line: the post ID, for when you need it in a query, a shortcode or a support thread; the same timestamp, relative; and the post's author. It is the author, not whoever saved it last, because WordPress does not record the last editor and the column does not pretend to. Sortable on WordPress' native modified ordering, so the page someone touched this morning is one click away on a site with thousands of them. The columns are in the docs.
The full URL path under every title
Not a column: a muted line directly under each title, so three pages called Overview stop being indistinguishable. The path is relative and decoded, /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
On hierarchical post types only: Pages, and any custom post type registered hierarchical. The column sits after Title and shows the parent's title, linked to that parent's branch view. The filter dropdown lists every page plus a Top level only option, and picking a page shows its whole branch, children and grandchildren all the way down, in the site's own menu order rather than A to Z. A section's third-level pages are the ones you can never find, and one level down would have missed exactly them. Sorting is by parent title, not parent ID, with a self-join so A to Z means A to Z. The branch view is in the docs.
A Template column and filter
Shown only where the active theme registers page templates for that post type; where it does not, there is no column, no filter and nothing to switch off. The column shows the template's human name, linked to a filtered view of everything using it, with a Default template option for pages that have none. When the stored template file no longer exists in the theme, the raw filename is shown instead of a name, which is the quickest way to find pages still pointing at a template a redesign deleted. The filter appends to whatever meta query is already on the screen, so another plugin's filtering keeps working alongside it. The template filter is in the docs.
Path search
The list-table search box does what it always did, and additionally matches the full URL path: a post's own slug plus every ancestor slug. 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
A Duplicate row action on every row you can edit, and a Duplicate entry in the Bulk actions dropdown. The row action creates the copy and lands you straight in the editor on it; the bulk action keeps you on the list and reports how many copies actually exist, skipping rows you lack permission on. A copy carries the content, excerpt, parent, menu order, password, comment and ping status, taxonomy terms and post meta. It is a draft, owned by whoever clicked, titled with (Copy) and an empty slug, so it never collides with the original. Meta is copied verbatim; post-ID references inside it are not remapped. What a copy is and is not is in the docs.

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.

EUR 49.00 (about $50), per year, cancel any time; the plugin keeps working until the year ends

Secure checkout via Stripe.
On screen licence key and in your inbox the moment payment clears.

Something not covered here? The FAQ has a Pages Plus section.