HTML entities are not being decoded when using WordPress REST API for Gutenberg blocks HTML entities are not being decoded when using WordPress REST API for Gutenberg blocks wordpress wordpress

HTML entities are not being decoded when using WordPress REST API for Gutenberg blocks


It's not immediately obvious, but there is in fact a method made available in the Blocks API to do this.

At the top of your block code, type:

const { decodeEntities } = wp.htmlEntities;

Then you can use it like this:

const options = response.data.map((post) => {    return {        label: decodeEntities(post.title.rendered),        value: post.id,    };});

Bazoozaa! HTML entities are gone.


And why not using rest_prepare_<post_type> filter ?

$post_type = "post"add_filter( "rest_prepare_".$post_type, 'prefix_title_entity_decode'] , 10, 1 ); function prefix_title_entity_decode($response){    $data = $response->get_data();    $data['title']['rendered'] = html_entity_decode( $data['title']['rendered']);    $response->set_data($data);    return $response;}