admin管理员组

文章数量:1125424

Wordpress is creating a &nbsp in the_excerpt. How do I remove it?

<div class="subtitulo-noticia"><?php the_excerpt(); ?></div>

&nbsp creates a space at the beginning of p

Edit: Each space in the_content creates a &nbsp, this ends up creating a &nbsp in the_excerpt. How do I create spaces in content without creating &nbsp

Wordpress is creating a &nbsp in the_excerpt. How do I remove it?

<div class="subtitulo-noticia"><?php the_excerpt(); ?></div>

&nbsp creates a space at the beginning of p

Edit: Each space in the_content creates a &nbsp, this ends up creating a &nbsp in the_excerpt. How do I create spaces in content without creating &nbsp

Share Improve this question edited Jan 30, 2017 at 22:39 Gabriel Souza asked Jan 30, 2017 at 15:21 Gabriel SouzaGabriel Souza 3711 gold badge10 silver badges23 bronze badges 5
  • looks to me like you need to edit the excerpt itself in the wp-admin, it looks like you have some spaces preceding the content. – RobBenz Commented Jan 30, 2017 at 15:35
  • What exactly do I need to edit? – Gabriel Souza Commented Jan 30, 2017 at 16:00
  • the post itself. you need to edit the content typed into the post editor. and remove the leading spaces with the delete key – RobBenz Commented Jan 30, 2017 at 19:38
  • maybe take a look here, if there are images in your post wordpress.stackexchange.com/questions/229679/… – RobBenz Commented Jan 30, 2017 at 19:39
  • Each space in the content creates a &nbsp, but how do I make a space without creating it? – Gabriel Souza Commented Jan 30, 2017 at 22:04
Add a comment  | 

6 Answers 6

Reset to default 1

I'm not sure why there's a non-breaking space being added to the front of your excerpt. It would be best to find out what is putting that there. But in the meantime, you can add this to your theme functions.php ( or a simple plugin ) and it should take care of it.

//* Remove non-breaking space from beginning of paragraph
add_filter( 'the_excerpt', function( $excerpt ) {
  return str_replace( [ '<p>&nbsp; ', '<p>&nbsp;' ], '<p>', $excerpt );
}, 999, 1 );

If you can't get rid of the extra space in the admin, then use trim()

<div class="subtitulo-noticia"><?php echo trim(get_the_excerpt()); ?></div>

http://www.w3schools.com/php/func_string_trim.asp

Try with:

$text = str_replace( "&nbsp","",get_the_excerpt() );

Maybe, replacing &nbsp with an empty string could be fix your problem. The get_the_excerpt() function will get your post's excerpt and str_replace() substitute &nbsp.

This is my working solution:

<?php echo trim(preg_replace('/>\s+</m', '><', get_the_content()));?>

I used a modified version of Nathan's solution to resolve the issue of WordPress adding in extra empty heading and space tags. While not comprehensive, it does save me from editing 200+ pages in the CMS to bring them up to accessibility level compliance. Also, we know that even if we fix the 200+ pages someone will do it again, so it would become a reoccurring issue to resolve.

// Remove non-breaking space from beginning of paragraph
add_filter( 'the_content', function ( $content ) {
    $search = [
        '<h1></h1>', 
        '<h2></h2>', 
        '<h3></h3>', 
        '<h4></h4>', 
        '<h5></h5>', 
        '<h6></h6>', 
        '<p></p>', 
        '<span></span>', 
        '&nbsp;',
    ];

    return str_replace( $search, '', $content );
}, 999 );

Insert this code into your theme's functions.php file

add_filter( 'the_excerpt', function( $excerpt ) {
  return str_replace( '&nbsp;', '', $excerpt );
}, 999, 1);

本文标签: phpRemove ampnbsp from theexcerpt