Shorten with iShort
Shorten with iShort
Description
Shorten with iShort lets you shorten any URL right inside the WordPress post editor — no copy-pasting between tabs.
Features:
- Classic Editor (TinyMCE) — icon button in the editor toolbar. Select a URL, click the button, and it’s instantly replaced with a short link.
- Gutenberg / Block Editor — inline toolbar button. Select a URL in any text block and shorten it in one click.
- Meta box — “Shorten post URL” button in the post sidebar. Shortens the current post’s URL and saves the result for later copying.
- Works on all post types — posts, pages, custom post types.
- Disabled for drafts — the meta box button is disabled until the post is published.
- Settings page — one field (API token) and a “Test Connection” button. Includes a direct link to get your token.
External service:
This plugin connects to iShort.su (https://ishort.su) to shorten URLs. An API token from iShort.su is required. Requests are only sent when you explicitly click a shortening button — no background tracking or data collection.
- iShort Privacy Policy: https://ishort.su/policy
- iShort Terms of Service: https://ishort.su/offer
Installation
- Upload the
shorten-with-ishortfolder to/wp-content/plugins/. - Activate the plugin through the Plugins screen in WordPress.
- Go to Settings iShort and enter your API token.
- Get your token at https://ishort.su/user/api-clients
Screenshots
Faq
Register at https://ishort.su and go to https://ishort.su/user/api-clients to create an API token.
No. An iShort.su account and API token are required.
Both Classic Editor (TinyMCE) and Gutenberg (Block Editor) are supported.
Yes, already-shortened URLs can be re-shortened.
You will see a message with a link to the plugin settings page.
Reviews
Changelog
1.0.2
- Fix: Classic Editor toolbar button was rendered invisible (blank icon) because the plugin relied on a custom
htmlrender option not supported by TinyMCE 4. The button now uses a standard image icon. - Fix: Gutenberg toolbar button never appeared —
registerFormatTypesilently refused to register the format becauseclassNamewasnullinstead of a string. - Fix: the Classic Editor and Gutenberg scripts both localized data into the same global variable name (
lsishort), which could silently overwrite each other’s data. Gutenberg now uses its ownlsishortGutenbergvariable. - Fix: the Gutenberg button never actually shortened anything — it called the AJAX endpoint via
wp.apiFetch, which sends a JSON body, whileadmin-ajax.phponly reads standard form-encoded$_POSTdata. The request now uses a plainfetch()call with a form-encoded body. - When the iShort API rejects the request as unauthenticated (e.g. an expired or revoked token), all three error messages (Classic Editor, Gutenberg, meta box) now include a link to the plugin’s settings page.
- The TinyMCE plugin script is now cache-busted with the plugin version.
1.0.0
- Initial release.
- Classic Editor (TinyMCE) toolbar button.
- Gutenberg inline toolbar button.
- Meta box with post URL shortening and copy button.
- Settings page with API token field and connection test.
- English and Russian translations.



