Problém s ampersand vo WP

Tento web je založený na CMS WordPress. Na písanie blogov používam vstavaný editor Gutenberg. Ak do blogu potrebujem vložiť nejaký zdrojový kód a chcem aby bola jeho syntax zvýraznená, použijem obľúbený plugin SyntaxHighlighter. Pred nedávnom som zistil, že ak je v zdrojovom kóde aj znak ampersand (tento znak „&„), tak v syntaxy sa zobrazí v tejto podobe (samozrejme bez medzery).

& amp;

Iste, že takýto kód je potom s chybou a keďže kód (resp. konfigurák) sa z webu len kopíruje a následne sa niekde vkladá, tak aplikácia, alebo parser by určite ohlásil chybnú syntax. Začal som teda hľadať riešenie a našiel som ako sa to dá jednoducho opraviť. Vo WordPress administrácii prejdeme do

Pluginy --> Editor Pluginov

Vyberte plugin, ktorý chcete upraviť

SyntaxHighlighter Evolved

a v skripte

SyntaxHighlighter.php

pridáme na koniec tento filter

/**
 * Filter to fix issue with & in SyntaxHighlighter Evolved plugin.
 *
 * @param string $code Code to format.
 * @param array $atts Attributes.
 * @param string $tag Tag.
 *
 * @return string
 */
function kagg_syntaxhighlighter_precode( $code, $atts, $tag ) {
    if ( 'code' === $tag ) {
        $code = wp_specialchars_decode( $code );
    }
    return $code;
}
add_filter( 'syntaxhighlighter_precode', 'kagg_syntaxhighlighter_precode', 10, 3 );

Klikneme na Aktualizovať súbor a máme hotovo. & sa už zobrazuje tak ako má.