Solved

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

Posted on 2014-01-28
6
273 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
ID: 39815086
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
ID: 39815093
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
ID: 39815116
Scott:

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

Open in new window


Equivalent? (Serious question....my JQuery-fu is weak)
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 52

Expert Comment

by:Scott Fell, EE MVE
ID: 39815134
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
ID: 39815190
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
ID: 39815218
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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
In order to have all security and back ups taken care of, WordPress users can sign up for services with WP Engine.
The purpose of this video is to demonstrate how to integrate Mailchimp with WordPress, by placing a Mailchimp signup form on a WordPress Page or Post. This will be demonstrated using a Windows 8 PC. Mailchimp will be used. Log into your Mailchi…
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…

789 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