{"id":226593,"date":"2025-03-24T13:18:32","date_gmt":"2025-03-24T13:18:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/remove-empty-shortcodes\/"},"modified":"2026-02-06T15:46:34","modified_gmt":"2026-02-06T15:46:34","slug":"remove-empty-shortcodes","status":"publish","type":"plugin","link":"https:\/\/fr-ca.wordpress.org\/plugins\/remove-empty-shortcodes\/","author":7342218,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Remove Empty Shortcodes","header_author":"Tom McFarlin","header_description":"Removes empty shortcodes from WordPress standard posts and pages.","assets_banners_color":"40698b","last_updated":"2026-02-06 15:46:34","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buymeacoffee.com\/tommcfarlin","header_plugin_uri":"https:\/\/github.com\/tommcfarlin\/remove-empty-shortcodes\/","header_author_uri":"https:\/\/tommcfarlin.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":690,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.6.0":{"tag":"0.6.0","author":"tommcfarlin","date":"2025-03-24 13:46:40"},"0.7.0":{"tag":"0.7.0","author":"tommcfarlin","date":"2025-04-21 18:44:31"},"1.0.0":{"tag":"1.0.0","author":"tommcfarlin","date":"2026-02-06 15:46:34"}},"upgrade_notice":{"0.6.0":"<p>Improved shortcode detection and removal with better support for multi-line shortcodes. Removes Composer dependency for simpler installation.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3455510,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3455510,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.6.0","0.7.0","1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3455510,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3455510,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3455510,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3455510,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Scanner ready to scan your content for unregistered shortcodes","2":"Scan results showing unregistered shortcodes found across your site","3":"Expanded view showing context preview and edit options for each shortcode","4":"By Post view showing all affected posts with their shortcodes"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3786,529,4917,732,357],"plugin_category":[43,52],"plugin_contributors":[80015],"plugin_business_model":[],"class_list":["post-226593","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-content","plugin_tags-content-management","plugin_tags-maintenance","plugin_tags-shortcodes","plugin_category-customization","plugin_category-performance","plugin_contributors-tommcfarlin","plugin_committers-tommcfarlin"],"banners":{"banner":"https:\/\/ps.w.org\/remove-empty-shortcodes\/assets\/banner-772x250.png?rev=3455510","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/remove-empty-shortcodes\/assets\/icon-256x256.png?rev=3455510","icon_2x":"https:\/\/ps.w.org\/remove-empty-shortcodes\/assets\/icon-256x256.png?rev=3455510","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/remove-empty-shortcodes\/assets\/screenshot-1.png?rev=3455510","caption":"Scanner ready to scan your content for unregistered shortcodes"},{"src":"https:\/\/ps.w.org\/remove-empty-shortcodes\/assets\/screenshot-2.png?rev=3455510","caption":"Scan results showing unregistered shortcodes found across your site"},{"src":"https:\/\/ps.w.org\/remove-empty-shortcodes\/assets\/screenshot-3.png?rev=3455510","caption":"Expanded view showing context preview and edit options for each shortcode"},{"src":"https:\/\/ps.w.org\/remove-empty-shortcodes\/assets\/screenshot-4.png?rev=3455510","caption":"By Post view showing all affected posts with their shortcodes"}],"raw_content":"<!--section=description-->\n<p>Remove Empty Shortcodes helps maintain clean content by removing shortcodes that no longer work or generate output. This commonly happens when:<\/p>\n\n<ul>\n<li>You've deactivated a plugin that provided shortcodes<\/li>\n<li>You're trying different plugins and some left behind inactive shortcodes<\/li>\n<li>You have shortcodes from plugins that weren't properly uninstalled<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Automatically removes inactive shortcodes from displayed content<\/li>\n<li>Preserves your original content in the database<\/li>\n<li>Works with all public post types<\/li>\n<li>Handles both self-closing and wrapped shortcodes<\/li>\n<li>Admin scanner to find and review unregistered shortcodes<\/li>\n<li>On-demand scanning with cached results<\/li>\n<li>Ignore specific shortcodes you want to keep<\/li>\n<li>Zero configuration required for automatic removal<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<p>The plugin checks your content for shortcodes when pages are displayed. If it finds shortcodes that:\n* Don't produce any output\n* Aren't registered with WordPress\n* Are empty or inactive<\/p>\n\n<p>It removes them from the displayed content while keeping your original content intact in the database.<\/p>\n\n<h4>Use Cases<\/h4>\n\n<ul>\n<li>Clean up content after removing plugins that used shortcodes<\/li>\n<li>Remove inactive shortcodes without editing posts manually<\/li>\n<li>Maintain clean content for readers and search engines<\/li>\n<li>Preserve original content in case you reinstall removed plugins<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>remove-empty-shortcodes<\/code> to your <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>That's it! No configuration needed<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20modify%20my%20database%20content%3F\"><h3>Will this modify my database content?<\/h3><\/dt>\n<dd><p>No. The plugin only filters content when it's displayed. Your original content remains unchanged in the database.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20reinstall%20a%20plugin%20that%20uses%20the%20removed%20shortcodes%3F\"><h3>What happens if I reinstall a plugin that uses the removed shortcodes?<\/h3><\/dt>\n<dd><p>Since your original content is preserved, the shortcodes will start working again automatically when you reinstall the plugin that handles them.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20all%20shortcodes%3F\"><h3>Does this work with all shortcodes?<\/h3><\/dt>\n<dd><p>Yes, the plugin works with any WordPress shortcode, whether from themes or plugins.<\/p><\/dd>\n<dt id=\"will%20this%20affect%20shortcodes%20that%20are%20working%20correctly%3F\"><h3>Will this affect shortcodes that are working correctly?<\/h3><\/dt>\n<dd><p>No. The plugin only removes shortcodes that are either unregistered or produce no output.<\/p><\/dd>\n<dt id=\"is%20there%20any%20configuration%20needed%3F\"><h3>Is there any configuration needed?<\/h3><\/dt>\n<dd><p>No. The plugin works automatically once activated.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20unregistered%20shortcodes%20on%20my%20site%3F\"><h3>How do I find unregistered shortcodes on my site?<\/h3><\/dt>\n<dd><p>Go to Tools &gt; Empty Shortcodes in your WordPress admin. Click \"Run Scan\" to search all your content for shortcodes that are no longer registered with WordPress.<\/p><\/dd>\n<dt id=\"what%20does%20%22ignore%22%20do%20in%20the%20scanner%3F\"><h3>What does \"Ignore\" do in the scanner?<\/h3><\/dt>\n<dd><p>Ignoring a shortcode adds it to a global ignore list. The scanner will no longer flag that shortcode, and the automatic removal feature will leave it untouched. Use this for shortcodes you intentionally want to keep.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Admin page under Tools menu for scanning and managing unregistered shortcodes<\/li>\n<li>On-demand scanning with progress indicator and cached results<\/li>\n<li>Two view modes: By Shortcode and By Post<\/li>\n<li>Context preview showing surrounding text for each shortcode<\/li>\n<li>Global ignore list for shortcodes you want to keep<\/li>\n<li>Support for all public post types<\/li>\n<li>Fixed false positive shortcode detection<\/li>\n<li>New abstract blue branding<\/li>\n<li>Restructured plugin with class-based architecture<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>Update support for WordPress 6.8<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Added support for multi-line shortcode detection<\/li>\n<li>Added a banner and icon for the WP plugin repository<\/li>\n<li>Improved handling of unregistered shortcodes<\/li>\n<li>Updated shortcode pattern matching<\/li>\n<li>Removed Composer dependencies<\/li>\n<li>Enhanced performance and reliability<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Added latest version of PHPStan<\/li>\n<li>Fixed page content processing<\/li>\n<li>Updated namespace structure<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Added page post type support<\/li>\n<li>Fixed subscriber content handling<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<li>Added standard post type support<\/li>\n<li>Improved shortcode detection<\/li>\n<\/ul>","raw_excerpt":"Automatically removes empty or inactive shortcodes from your content while preserving your original database entries.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/226593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=226593"}],"author":[{"embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tommcfarlin"}],"wp:attachment":[{"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=226593"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=226593"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=226593"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=226593"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=226593"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fr-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=226593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}