{"id":321859,"date":"2026-06-08T02:25:43","date_gmt":"2026-06-08T02:25:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/lihi-short-url\/"},"modified":"2026-06-08T02:55:30","modified_gmt":"2026-06-08T02:55:30","slug":"lihi-short-url","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/lihi-short-url\/","author":23496059,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"lihi Short URL","header_author":"lihi","header_description":"Adds a one-click \"lihi\" button to generate and copy short URLs, including posts, pages, media and all post-type list tables.","assets_banners_color":"","last_updated":"2026-06-08 02:55:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/lihi.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"lihidev","date":"2026-06-08 02:55:30"}},"upgrade_notice":{"1.0.1":"<p>Updates WordPress.org release metadata and package paths; no action required.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[83,266119,84,137,5530],"plugin_category":[50],"plugin_contributors":[266120],"plugin_business_model":[],"class_list":["post-321859","plugin","type-plugin","status-publish","hentry","plugin_tags-admin","plugin_tags-lihi","plugin_tags-media","plugin_tags-short-url","plugin_tags-url-shortener","plugin_category-media","plugin_contributors-lihidev","plugin_committers-lihidev"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/lihi-short-url.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>lihi Short URL integrates the <a href=\"https:\/\/lihi.io\">lihi<\/a> short-link service into the WordPress admin. With one click on a \"lihi\" button next to any post, page, custom post type, or media item, the plugin asks the lihi service for a short URL (creating one on first use, reusing it on subsequent clicks) and copies it to the clipboard. This plugin is open source and maintained at <a href=\"https:\/\/github.com\/weedgood\/lihi-wp-plugin\">weedgood\/lihi-wp-plugin<\/a>.<\/p>\n\n<p>The plugin runs only inside <code>wp-admin<\/code>; it adds no front-end output and enqueues no scripts on public pages.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Adds a <strong>Short URL<\/strong> column with a \"lihi\" button to all public post-type list screens (posts, pages, custom post types).<\/li>\n<li>Adds the same button to the Media Library list view and to the attachment detail panel in the media grid view.<\/li>\n<li>One-click copy: generates the short URL on demand via AJAX and writes it to the clipboard.<\/li>\n<li>Reuses an existing short URL whenever one already exists for the item, so repeated clicks are idempotent.<\/li>\n<li>Settings page under <strong>Settings \u2192 lihi Short URL<\/strong> for entering the lihi account email and choosing a redirect domain.<\/li>\n<li>Email verification is round-tripped through the lihi auth service before being saved, so an address the service rejects never becomes the active configuration.<\/li>\n<li>Per-account state (auth token and saved redirect domain) is automatically cleared whenever the configured email changes.<\/li>\n<li>Localised; ships with Traditional Chinese (<code>zh_TW<\/code>).<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the lihi short URL service to authenticate the site administrator and to create or look up short URLs. Without an internet connection the plugin cannot function.<\/p>\n\n<p><strong>Service: lihi authentication<\/strong> (<code>https:\/\/w.lihidev.com<\/code>)<\/p>\n\n<ul>\n<li>When data is sent: when the administrator saves an email address on the settings page (Settings \u2192 lihi Short URL), and on the first short-URL request after the cached auth token expires.<\/li>\n<li>What is sent: the administrator's email address and the site's hostname (sent as the HTTP <code>Host<\/code> header so the lihi service can identify the tenant).<\/li>\n<\/ul>\n\n<p><strong>Service: lihi short URL API<\/strong> (<code>https:\/\/app.lihidev.com<\/code>)<\/p>\n\n<ul>\n<li>When data is sent: when the administrator opens the settings page after configuring an email (to display account info), and when the administrator clicks a \"lihi\" button to generate or look up a short URL.<\/li>\n<li>What is sent: the bearer token returned by the auth service, the post or attachment URL (<code>permalink<\/code> or attachment file URL), the post type, the post ID, the configured redirect domain, and the site's hostname (included in tags).<\/li>\n<\/ul>\n\n<p>By using the plugin you agree that the data above is transmitted to the lihi service. Please review the lihi service's legal documents:<\/p>\n\n<ul>\n<li>Terms of Use: https:\/\/knowledge.lihi.io\/terms\/<\/li>\n<li>Privacy Policy: https:\/\/knowledge.lihi.io\/privacy-policy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>lihi-short-url<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress <strong>Plugins<\/strong> screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Settings \u2192 lihi Short URL<\/strong>.<\/li>\n<li>Enter your lihi account email address and click <strong>Save &amp; Verify<\/strong>. A verification email will be sent if the address is not yet verified.<\/li>\n<li>Once the email is verified, choose a <strong>Redirect domain<\/strong> from the dropdown and click <strong>Save<\/strong>.<\/li>\n<li>The \"lihi\" button now appears in a <strong>Short URL<\/strong> column on every public post-type list screen and in the Media Library.<\/li>\n<\/ol>\n\n<p>The plugin requires the <code>manage_options<\/code> capability to view or change settings. Any logged-in user can use the \"lihi\" button on screens they are otherwise allowed to access.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20don%27t%20i%20see%20the%20%22lihi%22%20button%20in%20my%20list%20tables%3F\"><h3>Why don't I see the \"lihi\" button in my list tables?<\/h3><\/dt>\n<dd><p>The UI hooks only register once the plugin is fully configured \u2014 both the lihi email and the redirect domain must be set. Open <strong>Settings \u2192 lihi Short URL<\/strong> to verify the email and choose a redirect domain.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20change%20the%20email%20address%3F\"><h3>What happens if I change the email address?<\/h3><\/dt>\n<dd><p>Changing the email clears the cached auth token and the previously selected redirect domain, because both belong to the previous account. After saving a new email and verifying it, choose a redirect domain again on the settings page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disable%20the%20plugin%20without%20deactivating%20it%3F\"><h3>How do I disable the plugin without deactivating it?<\/h3><\/dt>\n<dd><p>Clear the email field on <strong>Settings \u2192 lihi Short URL<\/strong> and click <strong>Save &amp; Verify<\/strong>. With no email configured the plugin stops registering its admin UI.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20run%20on%20the%20front-end%3F\"><h3>Does the plugin run on the front-end?<\/h3><\/dt>\n<dd><p>No. The plugin returns early on non-admin requests \u2014 it only adds admin UI and an <code>admin-ajax.php<\/code> handler.<\/p><\/dd>\n<dt id=\"which%20post%20types%20are%20supported%3F\"><h3>Which post types are supported?<\/h3><\/dt>\n<dd><p>All post types registered with <code>public =&gt; true<\/code>, plus the Media Library (both list mode and the grid view's attachment details panel).<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20data%20in%20my%20database%3F\"><h3>Does the plugin store data in my database?<\/h3><\/dt>\n<dd><p>Yes \u2014 two options (<code>lihi_email<\/code>, <code>lihi_domain<\/code>) and one transient (<code>lihi_token<\/code>). All three are removed when the plugin is deleted from the <strong>Plugins<\/strong> screen.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Aligns the plugin package directory, main file, and text domain with the WordPress.org slug.<\/li>\n<li>Removes dashboard-wide setup notices while keeping the settings page available.<\/li>\n<li>Updates release packaging validation for the <code>lihi-short-url<\/code> directory.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Adds a \"lihi\" short-URL button to all public post-type list tables and the Media Library.<\/li>\n<li>Settings page with email verification flow and per-account redirect domain selection.<\/li>\n<li>Traditional Chinese (<code>zh_TW<\/code>) translation included.<\/li>\n<\/ul>","raw_excerpt":"Adds a one-click &quot;lihi&quot; button to generate and copy short URLs from the WordPress admin for posts, pages, media, and public post types.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/321859","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=321859"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lihidev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=321859"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=321859"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=321859"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=321859"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=321859"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=321859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}