I have an html containing &nbsp but I am unable to pass it through wp_kses(). I have tried adding allowed html array('&nbsp' => array(),) but does not seems to work. I there a way or I should not do that?


  • 1
    Did you use &nbsp or   ? And what's the exact wp_kses() code you used?
    – Sally CJ
    May 25 '19 at 11:46
  • @SallyCJ not sure the difference but i used &nbsp for adding a white space ..then passed it through wp_kses() May 25 '19 at 11:50
  • 1
      is the correct one - the ; is required. Otherwise, that's an invalid HTML entity and &nbsp would result in &nbsp.
    – Sally CJ
    May 25 '19 at 11:52
  • 1
    @SallyCJ thank you! worked. May 25 '19 at 11:56
  • 1
    You're welcome. And be sure to use valid HTML entities. :) (You can check some here)
    – Sally CJ
    May 25 '19 at 12:02

not sure the difference but I used &nbsp for adding a white space ..then passed it through wp_kses()

The correct HTML entity for a non-breaking space is   — note the ; which is required and without it (i.e. &nbsp), the entity is not valid and when used with wp_kses(), you'd get &nbsp instead of a non-breaking space.

strangely it was working fine before I used wp_kses()

I'm pretty sure it's because the browser is smart enough and auto-corrected it to  . :-)

So, always use valid HTML entities and also tags (e.g. close a <div> with a </div>), regardless you use wp_kses() or not. Don't rely on "intelligent guess" or auto correction by the browser.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.