SyntaxHighlighter Evolved — замечательный WordPress-плагин для подсветки синтаксиса внутри постов и комментариев от товарища Алекса Миллса (Alex Mills).
Он отлично работает с дефолтными комментариями, но отказывается делать подсветку в комментариях на базе плагина De:comments.
Копнув код плагина SyntaxHighlighter Evolved, я нашел, что он цепляется за фильтр comment_text
для поиска своих шорткодов внутри текста комментария:
add_filter( 'comment_text', array( $this, 'parse_shortcodes_comment' ), 7 );
Данный фильтр не используется в плагине De:comments, но, судя по его исходнику, есть аналогичный фильтр с названием decomments_comment_text
, вот за него и цепляемся:
/** * Прикрутить SyntaxHighlighter к комментариям * на базе плагина De:comments * * @param string $comment_text текст комментария * * @return string */ function mihdan_add_syntax_highlighter_to_comments( $comment_text ) { /** @var SyntaxHighlighter $SyntaxHighlighter */ global $SyntaxHighlighter; return $SyntaxHighlighter->parse_shortcodes_comment( $comment_text ); } add_filter( 'decomments_comment_text', 'mihdan_add_syntax_highlighter_to_comments' );
Результат можно наблюдать в комментариях этого сайта.
Источник: https://www.kobzarev.com/wordpress/syntaxhighlighter-in-de-comments/