=== Shortcode Redirect ===
Contributors: cartpauj
Tags: redirect, block, gutenberg, url, shortcode
Requires at least: 6.0
Tested up to: 6.9
Stable tag: 1.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Redirect any post or page — with a native block or a classic shortcode. Optional delay. Optional "redirecting" message. Zero configuration.
== Description ==
Shortcode Redirect sends visitors from any post or page to another URL. No settings screens, no database tables — just drop it in where you need it.
There are two ways to use it, and both produce the exact same front-end output.
**1. The Redirect block (new in 1.1.0)**
In the block editor, add the **Redirect** block from the *Widgets* category. The block sidebar exposes three simple fields:
* **Destination URL** — where the visitor should end up
* **Seconds to wait** — how long to pause before redirecting (`0` = immediate)
* **Show "redirecting" message** — toggle the visible "Please wait..." line on or off
The editor shows a live summary of what the block will do, e.g. *"Redirects to https://example.com — after 3 seconds · message shown"*. No shortcode syntax to memorize.
**2. The classic shortcode**
Paste into any post or page:
`[redirect url='https://example.com' sec='3']`
Shortcode attributes:
* `url` — destination URL *(required)*
* `sec` — seconds to wait before redirecting *(optional, default `0`)*
* `show_message` — set to `false`, `0`, `no`, or `off` to hide the "redirecting" message *(optional, default `true`, new in 1.1.0)*
Example with all three:
`[redirect url='https://example.com' sec='5' show_message='false']`
**Same output either way**
Block or shortcode, the front-end renders the same single `` tag (plus the optional one-line message). No JavaScript. No server-side redirect. No third-party tracking. Existing `[redirect]` shortcodes from earlier versions continue to work unchanged.
= Features =
* **Block editor support** — native "Redirect" block *(new in 1.1.0)*
* **Classic shortcode** — `[redirect]` works exactly like it always has
* **Optional delay** — choose how many seconds to wait before redirecting
* **Silent mode** — hide the "redirecting..." message for a clean, blank-page redirect *(new in 1.1.0)*
* **Lightweight** — a single PHP file plus a small block; no settings, no tables, no dependencies
* **Backwards compatible** — upgrading from 1.0.x is drop-in
== Installation ==
1. Install from the WordPress Plugin Directory, or upload `shortcode-redirect.zip` to `/wp-content/plugins/`.
2. Activate the plugin through the **Plugins** menu.
3. Either:
* Add the **Redirect** block to any post/page (block inserter → *Widgets* → *Redirect*), **or**
* Paste `[redirect url='https://example.com' sec='3']` into any post/page.
No configuration screen to visit — the plugin activates and is immediately usable.
== Frequently Asked Questions ==
= How do I hide the "Please wait while you are redirected..." message? =
**In the block:** toggle off *Show "redirecting" message* in the block sidebar.
**In the shortcode:** add `show_message='false'` (also accepts `0`, `no`, or `off`):
`[redirect url='https://example.com' sec='3' show_message='false']`
= Do the block and the shortcode behave the same? =
Yes. Both render the same `` tag on the front-end. Same delay handling, same message toggle, same output.
= Can I mix blocks and shortcodes on the same site? =
Absolutely. Use whichever fits the page you're editing. Pages built with the old `[redirect]` shortcode keep working when you upgrade — no migration required.
= Does this require JavaScript in the visitor's browser? =
No. The redirect is a plain HTML `` tag. It works with JavaScript disabled, in text browsers, and inside reader modes.
= Can I use this in a Reusable Block / Synced Pattern? =
Yes — the Redirect block supports reuse, so you can save a configured redirect once and drop it anywhere.
== Upgrade Notice ==
= 1.1.1 =
Adds a native block editor block alongside the existing shortcode, plus a show/hide toggle for the "redirecting" message.
== Changelog ==
= 1.1.1 =
* **New:** Native block editor "Redirect" block (shares the same render logic as the shortcode)
* **New:** Option to show or hide the "Please wait while you are redirected..." message — via the `show_message` shortcode attribute or the *Show "redirecting" message* block toggle
* Hardened output escaping, added proper license headers, and added direct-access protection to satisfy Plugin Check
= 1.0.4 =
* Ensure compat with WP 6.9
= 1.0.03 =
* Fix XSS vulnerability (patchstack report efd671f0-81c0-4ca8-bbdb-11e6b63d3fe6)
= 1.0.02 =
* Fixed a low risk security hole
= 1.0.01 =
* Added output buffer to make text show up in the right place
* Added license to main file
* Fixed URL bug
= 1.0.00 =
* Initial release
== Screenshots ==
1. The **Redirect** block in the block editor — destination URL, delay, and "show message" toggle all live in the block sidebar, with a live summary inside the canvas.
2. Using the classic `[redirect]` shortcode via the core Shortcode block — fully backwards compatible.
3. The default "Please wait while you are redirected..." message that visitors see (with a manual fallback link) while the page waits to redirect.