Redirect Manager
New in v3.11.0. Free, and on by default — it’s treated as a safety feature (a deleted or renamed page shouldn’t leave a dead URL), so it ships active rather than opt-in, though it can be switched off entirely from the Modules tab. Five tools, a Redirects admin tab, and an automatic suggestion queue that watches every content delete/rename.
emcp-tools/list-redirects
Section titled “emcp-tools/list-redirects”Read-only, enabled by default. Lists configured redirects.
Input (all optional): enabled — filter to on/off redirects. search — match against source/target. per_page — 1–500, default 100. page — default 1.
Returns: { redirects: [...], total }.
emcp-tools/find-broken-links
Section titled “emcp-tools/find-broken-links”Read-only, enabled by default. Scans published content for internal links that are dead or already redirected.
Input (all optional): max_posts — 1–2000, default 200. max_seconds — 1–60, default 10.
Returns: { scanned, findings: [{ post_id, post_title, href, kind, suggestion }], partial }. kind is dead (404 or trashed target), redirected (the link works but already has a redirect — link straight to the target instead), or ok/external. partial: true if the scan hit its time cap before finishing.
emcp-tools/create-redirect
Section titled “emcp-tools/create-redirect”Write, disabled by default. Requires manage_options.
Input: source (required) — e.g. /old-page. target (a URL) or target_post_id — mutually exclusive. status_code — 301 or 302, default 301. ignore_query — match regardless of ?query, default true.
Returns: { redirect, warning? }. It still creates the redirect if source shadows a live, published page — but returns a warning flagging that, since redirecting a URL that’s still in use will make the live page unreachable.
emcp-tools/update-redirect
Section titled “emcp-tools/update-redirect”Write, disabled by default. Patch-style: id (required) plus any of source / target / target_post_id / status_code / ignore_query / enabled — only the fields you supply change.
emcp-tools/delete-redirect
Section titled “emcp-tools/delete-redirect”Write, disabled by default, destructive. id (required). Reversible from History — see Change History & Rollback.
Automatic redirect suggestions
Section titled “Automatic redirect suggestions”Deleting a post or changing its slug pushes a suggestion — never a redirect outright, an agent still has to confirm it — into a de-duped queue capped at 50 entries (option emcp_tools_redirect_suggestions). Suggestions surface in the Suggested redirects card on the Redirects admin tab, each with an “Add redirect” button that pre-fills the Add/Edit form from the suggestion.
The Redirects admin tab
Section titled “The Redirects admin tab”EMCP Tools → Redirects has three sections:
-
Add/Edit Redirect — a form for Source path, Target URL or Target post ID, Status code (301/302), and the “Match regardless of
?query” checkbox. The submit button reads “Add redirect” or “Update redirect” depending on whether you’re editing an existing row.
-
Suggested redirects — only shown when there’s a pending suggestion. Each row shows the orphaned path, whether it came from a delete or a slug rename, and an “Add redirect” button.
-
Active redirects — a table of every configured redirect: Source, Target, Code, Hits, and row actions. Disabled redirects are shown dimmed.

Scope and safety
Section titled “Scope and safety”- Read tools (
list-redirects,find-broken-links) are enabled by default; write tools are off until turned on, same convention as every other write-capable tool family. - All five require
manage_options. - Every create/update/delete is recorded to the change ledger and reversible from History — see Change History & Rollback.
create-redirectwarns rather than blocks when a source shadows a live page, so a careless redirect can still make a published page unreachable — check thewarningfield.