{"id":75757,"date":"2017-10-11T06:42:15","date_gmt":"2017-10-11T06:42:15","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/empty-p-tag\/"},"modified":"2026-08-12T02:58:10","modified_gmt":"2026-08-12T02:58:10","slug":"empty-p-tag","status":"publish","type":"plugin","link":"https:\/\/bre.wordpress.org\/plugins\/empty-p-tag\/","author":14236429,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"5.0.0","stable_tag":"5.0.0","tested":"6.8.8","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Empty P Tag","header_author":"Husain Ahmed","header_description":"This plugin removes empty p and br tag from the site.","assets_banners_color":"ce8949","last_updated":"2026-08-12 02:58:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/empty-p-tag\/","header_author_uri":"https:\/\/husain25.wordpress.com","rating":5,"author_block_rating":0,"active_installs":800,"downloads":8496,"num_ratings":7,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"5.0.0":{"tag":"5.0.0","author":"husainahmedqureshi","date":"2026-08-12 02:58:10"}},"upgrade_notice":{"5.0.0":"<p>Adds a settings page and safer, more configurable cleanup. Defaults keep previous behavior. See Release Notes for full details.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"7"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3128128,"resolution":"128x128","location":"assets","locale":"","width":297,"height":296}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":1744656,"resolution":"772x250","location":"assets","locale":"","width":1024,"height":332}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["5.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page with wpautop and cleanup options."}},"plugin_section":[],"plugin_tags":[1332,1395,2236,1975,23796],"plugin_category":[46],"plugin_contributors":[158224],"plugin_business_model":[],"class_list":["post-75757","plugin","type-plugin","status-publish","hentry","plugin_tags-editor","plugin_tags-excerpt","plugin_tags-filter","plugin_tags-formatting","plugin_tags-wpautop","plugin_category-editor-and-writing","plugin_contributors-husainahmedqureshi","plugin_committers-husainahmedqureshi"],"banners":{"banner":"https:\/\/ps.w.org\/empty-p-tag\/assets\/banner-772x250.png?rev=1744656","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/empty-p-tag\/assets\/icon-128x128.png?rev=3128128","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Empty P Tag helps you keep clean front-end markup when WordPress, themes, or builders insert unwanted empty <code>&lt;p&gt;<\/code> \/ <code>&lt;br&gt;<\/code> tags that create awkward spacing.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>Removes empty paragraph tags (including whitespace-only and <code>&amp;nbsp;<\/code> paragraphs)<\/li>\n<li>Optionally disables WordPress <code>wpautop<\/code> on content, excerpts, and text widgets<\/li>\n<li>Gives you a Settings screen so you can choose exactly where cleanup runs<\/li>\n<li>Stays lightweight: front-end cleaning runs only where you enable it<\/li>\n<\/ul>\n\n<p><strong>Useful when<\/strong><\/p>\n\n<ul>\n<li>Page builders or custom HTML layouts pick up extra vertical space<\/li>\n<li>Classic editor \/ mixed content leaves empty paragraphs behind<\/li>\n<li>You want <code>wpautop<\/code> off in some places, but normal paragraphs elsewhere<\/li>\n<\/ul>\n\n<p>Default settings match older versions of this plugin, so existing sites keep the same behavior after upgrading.<\/p>\n\n<h3>Release Notes<\/h3>\n\n<h4>Version 5.0.0 \u2013 Major update<\/h4>\n\n<p>This release rebuilds Empty P Tag around a proper settings experience while keeping the previous default behavior for existing sites.<\/p>\n\n<p><strong>Highlights<\/strong><\/p>\n\n<ul>\n<li>New admin page at <strong>Settings \u2192 Empty P Tag<\/strong><\/li>\n<li>Turn WordPress automatic paragraphs (<code>wpautop<\/code>) on or off for content, excerpts, and text widgets<\/li>\n<li>Choose where empty paragraph cleanup should run<\/li>\n<li>Improved matching for empty paragraphs that contain only spaces, <code>&amp;nbsp;<\/code>, line breaks, or invisible characters<\/li>\n<li>Option to also remove empty paragraphs that include HTML attributes (for example a class)<\/li>\n<li>Optional setting to collapse consecutive \/ stray line break tags<\/li>\n<li>Quick <strong>Settings<\/strong> link on the Plugins screen<\/li>\n<li>Translation-ready (text domain: <code>empty-p-tag<\/code>)<\/li>\n<li>Settings are removed cleanly on uninstall<\/li>\n<li>Compatibility updates: requires PHP 7.2+, tested up to WordPress 6.8<\/li>\n<\/ul>\n\n<p><strong>Upgrade notes<\/strong><\/p>\n\n<ul>\n<li>After updating, review <strong>Settings \u2192 Empty P Tag<\/strong><\/li>\n<li>Defaults match the older always-on behavior, so most sites will look the same after upgrade<\/li>\n<li>If your theme needs normal WordPress paragraphs, disable the <code>wpautop<\/code> options and leave empty-tag cleanup enabled<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>From the WordPress admin<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>Empty P Tag<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Open <strong>Settings \u2192 Empty P Tag<\/strong> to review options.<\/li>\n<\/ol>\n\n<h4>Manual install<\/h4>\n\n<ol>\n<li>Upload the <code>empty-p-tag<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>Empty P Tag<\/strong> from the Plugins screen.<\/li>\n<li>Configure options under <strong>Settings \u2192 Empty P Tag<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20change%20my%20posts%20immediately%3F\"><h3>Will this change my posts immediately?<\/h3><\/dt>\n<dd><p>Yes on the front end. The plugin filters rendered content; it does not rewrite post content in the database.<\/p><\/dd>\n<dt id=\"does%20this%20disable%20all%20paragraph%20formatting%3F\"><h3>Does this disable all paragraph formatting?<\/h3><\/dt>\n<dd><p>Only if those options stay enabled. You can turn off <code>wpautop<\/code> removal per area (content, excerpt, widgets) and still strip empty tags.<\/p><\/dd>\n<dt id=\"i%20upgraded%20and%20my%20layout%20looks%20different\"><h3>I upgraded and my layout looks different<\/h3><\/dt>\n<dd><p>Open <strong>Settings \u2192 Empty P Tag<\/strong> and restore the defaults, or disable only the option that conflicts with your theme.<\/p><\/dd>\n<dt id=\"can%20developers%20customize%20cleanup%3F\"><h3>Can developers customize cleanup?<\/h3><\/dt>\n<dd><p>Yes. Filters include <code>haq_empty_p_tag_should_clean<\/code> and <code>haq_empty_p_tag_cleaned_content<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.0.0<\/h4>\n\n<ul>\n<li>Major rewrite with a Settings screen (Settings \u2192 Empty P Tag)<\/li>\n<li>Choose where to disable wpautop (content, excerpt, widgets)<\/li>\n<li>Choose where empty paragraph cleanup runs<\/li>\n<li>Stronger empty-tag matching (<code>&amp;nbsp;<\/code>, zero-width spaces, attribute-bearing empty paragraphs)<\/li>\n<li>Optional collapse of extra <code>&lt;br&gt;<\/code> tags<\/li>\n<li>Plugin action link to Settings<\/li>\n<li>Translation-ready text domain<\/li>\n<li>Clean uninstall that removes stored settings<\/li>\n<li>Requires PHP 7.2+, tested with modern WordPress<\/li>\n<\/ul>\n\n<h4>4.1<\/h4>\n\n<ul>\n<li>Internal maintenance release<\/li>\n<\/ul>\n\n<h4>3.0<\/h4>\n\n<ul>\n<li>WordPress.org compatibility updates<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Third release<\/li>\n<li>Added feature to remove whitespace-only paragraph tags<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Second release<\/li>\n<li>Added <code>preg_replace<\/code> cleanup for empty tags<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release<\/li>\n<li>Basic plugin<\/li>\n<\/ul>","raw_excerpt":"Remove empty paragraph and break tags, and optionally disable WordPress automatic formatting (wpautop).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/75757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=75757"}],"author":[{"embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/husainahmedqureshi"}],"wp:attachment":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=75757"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=75757"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=75757"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=75757"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=75757"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=75757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}