{"id":328289,"date":"2026-09-01T06:44:17","date_gmt":"2026-09-01T06:44:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/link-shortener-by-ishort\/"},"modified":"2026-09-01T08:57:45","modified_gmt":"2026-09-01T08:57:45","slug":"shorten-with-ishort","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/shorten-with-ishort\/","author":23518929,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Shorten with iShort","header_author":"iShort","header_description":"Shorten URLs directly from the WordPress editor using iShort.su service.","assets_banners_color":"","last_updated":"2026-09-01 08:57:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/redrum0x\/link-shortener-ishort","header_author_uri":"https:\/\/ishort.su","rating":0,"author_block_rating":0,"active_installs":0,"downloads":46,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"redrum0x","date":"2026-09-01 06:44:04","revision":3675450},"1.0.2":{"tag":"1.0.2","author":"redrum0x","date":"2026-09-01 08:57:45","revision":3675710}},"upgrade_notice":{"1.0.2":"<p>Fixes invisible\/non-functional Classic Editor and Gutenberg toolbar buttons. Update recommended for all 1.0.0 users.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3675710,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3675710,"resolution":"1","location":"assets","locale":"","width":1280,"height":768},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3675710,"resolution":"2","location":"assets","locale":"","width":2000,"height":200},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3675710,"resolution":"3","location":"assets","locale":"","width":2000,"height":1113},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3675710,"resolution":"4","location":"assets","locale":"","width":936,"height":1472}},"screenshots":{"1":"Settings page \u2014 enter your API token and test the connection.","2":"Classic Editor toolbar button \u2014 shorten a selected URL.","3":"Gutenberg inline toolbar button \u2014 shorten a selected URL in a block.","4":"Meta box \u2014 shorten the post URL and copy the result."}},"plugin_section":[],"plugin_tags":[278585,3602,137,32785,5530],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-328289","plugin","type-plugin","status-publish","hentry","plugin_tags-ishort","plugin_tags-link-shortener","plugin_tags-short-url","plugin_tags-tiny-url","plugin_tags-url-shortener","plugin_committers-redrum0x"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/shorten-with-ishort\/assets\/icon.svg?rev=3675710","icon":"https:\/\/ps.w.org\/shorten-with-ishort\/assets\/icon.svg?rev=3675710","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/shorten-with-ishort\/assets\/screenshot-1.jpg?rev=3675710","caption":"Settings page \u2014 enter your API token and test the connection."},{"src":"https:\/\/ps.w.org\/shorten-with-ishort\/assets\/screenshot-2.png?rev=3675710","caption":"Classic Editor toolbar button \u2014 shorten a selected URL."},{"src":"https:\/\/ps.w.org\/shorten-with-ishort\/assets\/screenshot-3.png?rev=3675710","caption":"Gutenberg inline toolbar button \u2014 shorten a selected URL in a block."},{"src":"https:\/\/ps.w.org\/shorten-with-ishort\/assets\/screenshot-4.png?rev=3675710","caption":"Meta box \u2014 shorten the post URL and copy the result."}],"raw_content":"<!--section=description-->\n<p><strong>Shorten with iShort<\/strong> lets you shorten any URL right inside the WordPress post editor \u2014 no copy-pasting between tabs.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Classic Editor (TinyMCE)<\/strong> \u2014 icon button in the editor toolbar. Select a URL, click the button, and it's instantly replaced with a short link.<\/li>\n<li><strong>Gutenberg \/ Block Editor<\/strong> \u2014 inline toolbar button. Select a URL in any text block and shorten it in one click.<\/li>\n<li><strong>Meta box<\/strong> \u2014 \"Shorten post URL\" button in the post sidebar. Shortens the current post's URL and saves the result for later copying.<\/li>\n<li><strong>Works on all post types<\/strong> \u2014 posts, pages, custom post types.<\/li>\n<li><strong>Disabled for drafts<\/strong> \u2014 the meta box button is disabled until the post is published.<\/li>\n<li><strong>Settings page<\/strong> \u2014 one field (API token) and a \"Test Connection\" button. Includes a direct link to get your token.<\/li>\n<\/ul>\n\n<p><strong>External service:<\/strong><\/p>\n\n<p>This plugin connects to <strong>iShort.su<\/strong> (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 \u2014 no background tracking or data collection.<\/p>\n\n<ul>\n<li>iShort Privacy Policy: https:\/\/ishort.su\/policy<\/li>\n<li>iShort Terms of Service: https:\/\/ishort.su\/offer<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>shorten-with-ishort<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 iShort<\/strong> and enter your API token.<\/li>\n<li>Get your token at https:\/\/ishort.su\/user\/api-clients<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20an%20api%20token%3F\"><h3>Where do I get an API token?<\/h3><\/dt>\n<dd><p>Register at https:\/\/ishort.su and go to https:\/\/ishort.su\/user\/api-clients to create an API token.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20without%20an%20account%3F\"><h3>Does the plugin work without an account?<\/h3><\/dt>\n<dd><p>No. An iShort.su account and API token are required.<\/p><\/dd>\n<dt id=\"which%20editors%20are%20supported%3F\"><h3>Which editors are supported?<\/h3><\/dt>\n<dd><p>Both Classic Editor (TinyMCE) and Gutenberg (Block Editor) are supported.<\/p><\/dd>\n<dt id=\"can%20i%20shorten%20urls%20that%20are%20already%20short%20links%3F\"><h3>Can I shorten URLs that are already short links?<\/h3><\/dt>\n<dd><p>Yes, already-shortened URLs can be re-shortened.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20api%20token%20is%20not%20configured%3F\"><h3>What happens if the API token is not configured?<\/h3><\/dt>\n<dd><p>You will see a message with a link to the plugin settings page.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Classic Editor toolbar button was rendered invisible (blank icon) because the plugin relied on a custom <code>html<\/code> render option not supported by TinyMCE 4. The button now uses a standard image icon.<\/li>\n<li>Fix: Gutenberg toolbar button never appeared \u2014 <code>registerFormatType<\/code> silently refused to register the format because <code>className<\/code> was <code>null<\/code> instead of a string.<\/li>\n<li>Fix: the Classic Editor and Gutenberg scripts both localized data into the same global variable name (<code>lsishort<\/code>), which could silently overwrite each other's data. Gutenberg now uses its own <code>lsishortGutenberg<\/code> variable.<\/li>\n<li>Fix: the Gutenberg button never actually shortened anything \u2014 it called the AJAX endpoint via <code>wp.apiFetch<\/code>, which sends a JSON body, while <code>admin-ajax.php<\/code> only reads standard form-encoded <code>$_POST<\/code> data. The request now uses a plain <code>fetch()<\/code> call with a form-encoded body.<\/li>\n<li>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.<\/li>\n<li>The TinyMCE plugin script is now cache-busted with the plugin version.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Classic Editor (TinyMCE) toolbar button.<\/li>\n<li>Gutenberg inline toolbar button.<\/li>\n<li>Meta box with post URL shortening and copy button.<\/li>\n<li>Settings page with API token field and connection test.<\/li>\n<li>English and Russian translations.<\/li>\n<\/ul>","raw_excerpt":"Shorten URLs directly from the WordPress editor using iShort.su \u2014 the fast, reliable URL shortening service.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328289"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/redrum0x"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328289"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328289"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328289"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328289"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328289"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}