今天遇到一个问题,在评论中是无法插入一些PHP、CSS、HTML、JS等代码,会直接解析而不是显示代码本身,就算使用了code或pre标签也不行。原因是Wordpress 自身有一个强大的HTML标签过滤系统,你插入的html标签等会直接消失。文章中倒是好解决的,可以切换到可视化界面,将代码复制,再切换到代码界面,植入pre标签。但评论中不行,不想使用插件,有没有解决方法?
add_filter('pre_comment_content', 'yyob_encode_code_in_posts_comments'); add_filter('the_content', 'yyob_encode_code_in_posts_comments'); function yyob_encode_code_in_posts_comments($source) { $encoded = preg_replace_callback('/<pre>(.*?)<\/pre>/ims', create_function( '$matches', '$matches[1] = preg_replace( array("/^[\r|\n]+/i", "/[\r|\n]+$/i"), "", $matches[1]); return "<pre>" . esc_html( $matches[1] ) . "</pre>";' ), $source); if ($encoded) return $encoded; else return $source; }