Wordpress - remove <p> tags from the_content
Wordpress automatically ads the <p>
tags to the content. So it shows up while loading the content. This is with the filter wpautop
. So we will remove this filter for the image
post type only. You can manage this by adding the following code in functions.php file.
// Add the filter to manage the p tags
add_filter( 'the_content', 'wti_remove_autop_for_image', 0 );
function wti_remove_autop_for_image( $content )
{
global $post;
// Check for single page and image post type and remove
if ( is_single() && $post->post_type == 'image' )
remove_filter('the_content', 'wpautop');
return $content;
}
is_single()
checks if a single post is being displayed.
If this post type is called "image", you can create a single template to handle the display of just the image post type.
Just copy your 'single.php' file and rename the copy 'single-image.php'. Now you can control just the image posts. To strip out tags, I like to use the strip_tags()
function. If you print the content of the post with the_content()
it already applies the content filter, wrapping lines in <p>
tags.
Here is an example of how you could get the content of your image without the tags:
$imageContent = get_the_content();
$stripped = strip_tags($imageContent, '<p> <a>'); //replace <p> and <a> with whatever tags you want to keep after the strip
echo $stripped;
Hope this helps!
By default, WordPress adds paragraph
tags to category descriptions. Stop this by adding the following to your functions.php file// Remove p tags from category description
remove_filter('term_description','wpautop');
Simple and easy (codeless).
Thank you