{"id":260786,"date":"2025-11-21T10:20:45","date_gmt":"2025-11-21T10:20:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/remove-empty-p-tags\/"},"modified":"2026-03-19T06:34:43","modified_gmt":"2026-03-19T06:34:43","slug":"code-and-core-remove-empty-p-tags","status":"publish","type":"plugin","link":"https:\/\/ms.wordpress.org\/plugins\/code-and-core-remove-empty-p-tags\/","author":22039652,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.0","stable_tag":"2.0.0","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Code and Core Remove Empty P Tags","header_author":"Code and Core","header_description":"Adds a checkbox in post\/page editor to remove \u201c \u201d (non-breaking space) and empty <p> tags from content when saving.","assets_banners_color":"dbddf2","last_updated":"2026-03-19 06:34:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":50,"downloads":408,"num_ratings":1,"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":"codeandcore","date":"2025-11-21 10:20:31"},"1.1.0":{"tag":"1.1.0","author":"codeandcore","date":"2025-11-25 13:02:11"},"2.0.0":{"tag":"2.0.0","author":"codeandcore","date":"2026-03-19 06:34:43"}},"upgrade_notice":{"2.0.0":"<p>Major update! New settings page, Frontend cleanup mode, and Block Editor\/ACF support.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3464148,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3464148,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3400311,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3400311,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3486226,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3486226,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3486226,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3486226,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"The new Settings Page with Frontend\/Backend toggle and Post Type selection.","2":"Privacy &amp; Telemetry settings for transparent data sharing.","3":"Backend mode: The cleanup checkbox in the post editor sidebar.","4":"Frontend mode: Clean output without touching the database."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2211,3786,529,1975,148076],"plugin_category":[46],"plugin_contributors":[240189],"plugin_business_model":[],"class_list":["post-260786","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-cleanup","plugin_tags-content","plugin_tags-formatting","plugin_tags-gutenberg","plugin_category-editor-and-writing","plugin_contributors-codeandcore","plugin_committers-codeandcore"],"banners":{"banner":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/banner-772x250.png?rev=3400311","banner_2x":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/banner-1544x500.png?rev=3400311","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/icon-128x128.png?rev=3464148","icon_2x":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/icon-256x256.png?rev=3464148","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/screenshot-1.png?rev=3486226","caption":"The new Settings Page with Frontend\/Backend toggle and Post Type selection."},{"src":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/screenshot-2.png?rev=3486226","caption":"Privacy &amp; Telemetry settings for transparent data sharing."},{"src":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/screenshot-3.png?rev=3486226","caption":"Backend mode: The cleanup checkbox in the post editor sidebar."},{"src":"https:\/\/ps.w.org\/code-and-core-remove-empty-p-tags\/assets\/screenshot-4.png?rev=3486226","caption":"Frontend mode: Clean output without touching the database."}],"raw_content":"<!--section=description-->\n<p>The <strong>Code and Core Remove Empty P Tags<\/strong> is a powerful yet lightweight plugin that helps you eliminate unwanted spacing in your WordPress content. With version 2.0.0, we've introduced complete flexibility with two cleanup modes:<\/p>\n\n<ol>\n<li><strong>Frontend Cleanup (Recommended):<\/strong> Automatically cleans content as it's displayed on your site. This is non-destructive, meaning your database remains untouched while your visitors see perfectly clean content.<\/li>\n<li><strong>Backend Cleanup (Editor-based):<\/strong> Adds a checkbox to your post\/page editor. When checked, content is cleaned and saved directly to the database.<\/li>\n<\/ol>\n\n<p><strong>What it removes:<\/strong><\/p>\n\n<ul>\n<li>Empty paragraph tags.<\/li>\n<li>Paragraphs containing only non-breaking spaces.<\/li>\n<li>Empty paragraphs with line breaks.<\/li>\n<li>Multiple consecutive line breaks (collapses them into one).<\/li>\n<\/ul>\n\n<h3>Key Features<\/h3>\n\n<ul>\n<li><strong>Frontend &amp; Backend modes:<\/strong> Choose between site-wide display cleanup or permanent database cleanup.<\/li>\n<li><strong>Block Editor (Gutenberg) Support:<\/strong> Fully compatible with the modern WordPress editor.<\/li>\n<li><strong>Classic Editor Support:<\/strong> Continued support for the traditional TinyMCE editor.<\/li>\n<li><strong>ACF Support:<\/strong> Clean up content in Advanced Custom Fields (WYSIWYG and Textarea).<\/li>\n<li><strong>Custom Post Types:<\/strong> Enable cleanup for any public post type on your site.<\/li>\n<li><strong>Exclude Post IDs:<\/strong> Easily skip cleanup on specific pages or posts.<\/li>\n<li><strong>Lightweight:<\/strong> Minimal impact on site performance.<\/li>\n<\/ul>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin does not collect, store, or process any personal or user-identifiable information without the site administrator's explicit consent.<\/p>\n\n<h3>Telemetry Consent<\/h3>\n\n<p>To help improve plugin stability and ensure safe updates, you can opt-in to send minimal anonymous technical information (WordPress version, PHP version, theme locales) to our server.<\/p>\n\n<p><strong>No personal data, user emails, or IP addresses are collected.<\/strong> Opting in is 100% voluntary and can be disabled at any time from the settings page.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>code-and-core-remove-empty-p-tags<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin in the <strong>Plugins<\/strong> menu.<\/li>\n<li>Navigate to <strong>Settings &gt; Remove Empty P Tags<\/strong> to configure your cleanup preferences.<\/li>\n<li>Choose your preferred mode (Frontend or Backend) and select the post types to clean.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20work%20with%20the%20block%20editor%20%28gutenberg%29%3F\"><h3>Does the plugin work with the Block Editor (Gutenberg)?<\/h3><\/dt>\n<dd><p>Yes! Version 2.0.0 fully supports the Block Editor. You can enable or disable this in the settings.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20for%20custom%20post%20types%3F\"><h3>Can I use it for Custom Post Types?<\/h3><\/dt>\n<dd><p>Yes. You can select which post types (including CPTs) should be processed in the plugin settings.<\/p><\/dd>\n<dt id=\"does%20it%20support%20acf%3F\"><h3>Does it support ACF?<\/h3><\/dt>\n<dd><p>Yes. There is a built-in option to clean Advanced Custom Fields content.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20frontend%20and%20backend%20modes%3F\"><h3>What is the difference between Frontend and Backend modes?<\/h3><\/dt>\n<dd><p>Frontend mode cleans the content on-the-fly when a visitor views the page (non-destructive). Backend mode requires you to check a box in the editor to clean and save the changes permanently to the database.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li><strong>Major Overhaul<\/strong>: New settings page for full control.<\/li>\n<li><strong>Frontend Mode<\/strong>: Added non-destructive site-wide cleanup.<\/li>\n<li><strong>Gutenberg Support<\/strong>: Added compatibility with the Block Editor.<\/li>\n<li><strong>ACF Integration<\/strong>: Added support for cleaning Advanced Custom Fields.<\/li>\n<li><strong>Post Type Selection<\/strong>: Now supports Custom Post Types.<\/li>\n<li><strong>Telemetry<\/strong>: Added anonymous diagnostic tracking (opt-in) to improve stability.<\/li>\n<li><strong>Code Standards<\/strong>: Refactored entire codebase to follow WordPress naming conventions.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Added editor checkbox for removing empty paragraph tags and non-breaking spaces during post save.<\/li>\n<\/ul>","raw_excerpt":"Easily remove empty paragraph tags, non-breaking spaces, and extra line breaks. Now supports Frontend cleanup, Gutenberg, and ACF.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/260786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=260786"}],"author":[{"embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/codeandcore"}],"wp:attachment":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=260786"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=260786"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=260786"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=260786"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=260786"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=260786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}