WordPress Plugin Syntax Highlighter Fix

Source: from a forum poster of this plugin’s Github page.

// Add this to functions.php
// Override the double encoded strings on (a) post save (b) code form Gutenberg blocks (c) shortcodes
function ntz_fix_syntax_highlighter($content)
{
	return preg_replace('/&([^;]+;)/', '&$1', $content);
}

add_filter('content_save_pre', 'ntz_fix_syntax_highlighter');
add_filter('syntaxhighlighter_htmlresult', 'ntz_fix_syntax_highlighter');
add_filter('syntaxhighlighter_precode', 'ntz_fix_syntax_highlighter');
// Add this function to force HTML entity encoding/decoding in PHP to include quotes against its default
function kagg_syntaxhighlighter_precode( $code, $atts, $tag ) {
	if ( 'code' === $tag ) {
		$code = wp_specialchars_decode( $code, ENT_QUOTES );
	}
	return $code;
}
add_filter( 'syntaxhighlighter_precode', 'kagg_syntaxhighlighter_precode', 10, 3 );

Leave a Reply

Your email address will not be published. Required fields are marked *