Solved

Need help removing whitespace from end of Wordpress post as it's saved

Posted on 2014-01-28
6
266 Views
Last Modified: 2014-02-16
I'm surprised this is not more of an issue on multi-author blogs. Certainly is with my writers -

They tend to leave extra <p></p> tags at the end of their posts, not realizing that white space (when viewed on the visual editor) is going to appear as empty space on their post when published.

To complicate it a bit, sometimes, depending on how they edited it, there will be styles in the tag, such as: <p style="text-align: justify;"></p>.

Is there a way to identify and trim all empty paragraph tags from the end of the post as it's being saved?

Thanks for any assistance,

Chris

edit - its occurred to me that I don't need to trim paragraphs only from the - end - of the post. I don't see any reason for any empty paragraph tags to exist in the content at all. So the solution could remove all empty p tags, not just the ones at the end. That would probably be easier.
0
Comment
Question by:St_Aug_Beach_Bum
  • 3
  • 2
6 Comments
 
LVL 70

Accepted Solution

by:
Jason C. Levine earned 500 total points
Comment Utility
I'm surprised this is not more of an issue on multi-author blogs. Certainly is with my writers -

What?  You're not silently editing all other author's posts? :)

In all seriousness, this has come up in the community but not restricted to just the end of the content.

add_filter('the_content', 'remove_empty_p', 20, 1);
function remove_empty_p($content){
    $content = force_balance_tags($content);
    return preg_replace('#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content);
}

Open in new window


Source:  https://gist.github.com/1668216

That function should strip all empty p tags from the post.
0
 
LVL 52

Expert Comment

by:Scott Fell, EE MVE
Comment Utility
You could add some jquery code
$('p').each(function(){
  if ($(this).html()===''){
      $(this).remove();
  }
});

Open in new window

0
 
LVL 70

Expert Comment

by:Jason C. Levine
Comment Utility
Scott:

$('p:empty').remove();

Open in new window


Equivalent? (Serious question....my JQuery-fu is weak)
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 52

Expert Comment

by:Scott Fell, EE MVE
Comment Utility
Looks better to me.    

I figured jquery for older posts but is there a way to easily go back and clean up the db?
0
 
LVL 70

Expert Comment

by:Jason C. Levine
Comment Utility
Well, my filter solution runs as the page is called so it works for all content over time.
0
 

Author Comment

by:St_Aug_Beach_Bum
Comment Utility
What?  You're not silently editing all other author's posts? :)

Actually, I have been - trying to get away from that :)

I'm not sure how or where to put the jquery, so I'm leaning toward the filter.

Since I have been cleaning up posts in the past, those are not an issue.

Would there be a way to run this filter and take out those tags as the post is being saved? That way it would not have to run with every hit, correct?

(I don't use cacheing as I have alternating ad codes.)
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
The purpose of this video is to demonstrate how to manually back up a WordPress Database. This will be demonstrated using a Windows 8 PC. The Host used will be IPage.com Log into your Hosting account. IPage will be used for demonstration : Locat…
The purpose of this video is to demonstrate how to set up an RSS Feed on a WordPress Website. This will be demonstrated using a Windows 8 PC. Feedburner will be used for this demonstration. Go to your WordPress login page. This will look like the…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now