Правильное отображение амперсанда в блоке SyntaxHighlighter – & вместо &

30.11.2019

Суть проблемы – при добавлении кода в визуальном редакторе с помощью плагина SyntaxHighlighter символ & отображается как &

А значит при копировании данного кода у пользователя возникнут ошибки и проблемы.

Данный баг замечен на сайте с WordPress 5.3 и SyntaxHighlighter Evolved 3.5.1 при использовании встроенного редактора Gutenberg.

Разработчик знает об этом баге, но пока не выкатил решение, свалив всю вину на Gutenberg, поэтому проблему будем решать самостоятельно. Достаточно добавить данный код в файл functions.php на свой сайт:

/**
 * 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 crea_syntaxhighlighter_precode( $code, $atts, $tag ) {
    if ( 'code' === $tag ) {
        $code = wp_specialchars_decode( $code );
    }
    return $code;
}
add_filter( 'syntaxhighlighter_precode', 'crea_syntaxhighlighter_precode', 10, 3 );

Ну, и если в коде выше вы не видите & – значит он работает.

Полезная инфа:

Оставить комментарий