AnyComment — лучший плагин под WordPress для вывода комментариев на вашем сайте, но «из коробки» он не умеет подсветку синтаксиса.
В предыдущей статье, которая была посвещена плагину de:comments, мы выяснили, что SyntaxHighlighter Evolved
цепляется за фильтр comment_text
для поиска своих шорткодов внутри текста комментария:
add_filter( 'comment_text', array( $this, 'parse_shortcodes_comment' ), 7 );
Данный фильтр не используется в плагине AnyComment, но, судя по его исходнику, есть аналогичный фильтр с названием anycomment/rest/comments/item_for_response
, вот за него и цепляемся:
/** * Прикрутить SyntaxHighlighter к комментариям * на базе плагина AnyComment * * @param array $data массив с данными о комментарии. * @param WP_Comment $comment объект комментария. * * @return array */ function mihdan_add_syntax_highlighter_to_anycomments( $data, $comment ) { /** @var SyntaxHighlighter $SyntaxHighlighter */ global $SyntaxHighlighter; $data['content'] = $SyntaxHighlighter->parse_shortcodes_comment( $data['content'] ); return $data; } add_filter( 'anycomment/rest/comments/item_for_response', 'mihdan_add_syntax_highlighter_to_anycomments', 10, 2 );
Результат можно наблюдать в комментариях этого сайта.
Источник: https://www.kobzarev.com/wordpress/syntaxhighlighter-evolved-in-anycomment/