?
Solved

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

Posted on 2014-01-28
6
Medium Priority
?
281 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 70

Accepted Solution

by:
Jason C. Levine earned 2000 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 53

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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 53

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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
This article discusses four methods for overlaying images in a container on a web page
The purpose of this video is to demonstrate how to add AdSense Ads to a WordPress Website, and how to set up WordPress to automatically place Ads in Sidebars. This will be demonstrated using a Windows 8 PC. Log into your AdSense account. : Cli…
The purpose of this video is to demonstrate how to Import and export files in WordPress. This will be demonstrated using a Windows 8 PC. Go to your WordPress login page. This will look like the following: mywebsite.com/wp-login.php : Click on Too…
Suggested Courses

801 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