你想让人们在他们的评论中发布代码,就像在这里我们可以做的那样<p>something</p>
不用担心做任何事情>
或<
东西我认为您仍然需要将这些特殊的html字符转换为各自的实体,但您需要保持警惕,以避免标签被wp_filter_kses
.
您需要挂接一个名为pre_comment_content
并将短代码标记中的任何内容转换为它们的HTML实体等价物。
<?php
add_filter(\'pre_comment_text\', \'wpse29367_pre_comment_text\', 9 );
function wpse29367_pre_comment_text( $text )
{
$text = preg_replace_callback(
\'/(\\[html\\])(.*?)(\\[\\/html\\])/i\',
create_function( \'$matches\', \'return $matches[1] . htmlspecialchars( $matches[2] ) . $matches[3];\' ),
$text
);
return $text;
}
然后,您可以在您创建的快捷码函数中解码它们或任何内容:
<?php
add_action( \'init\', \'wpse29367_add_shortcode\' );
function wpse29367_add_shortcode()
{
add_shortcode( \'html\', \'wpse29367_shortcode_cb\' );
}
function wpse29367_shortcode_cb( $atts, $content = NULL )
{
/**
* decode html entities here if you want
* eg:
* return htmlspecialchars_decode( $content );
*/
}
拼图的最后一块,添加
do_shortcode
筛选到comment\\u文本。
<?php
add_filter( \'comment_text\', \'do_shortcode\' );
您可以通过使用以下插件为您的访问者做好这项工作
SyntaxHighlighter Evolved, 只需使用我发布的第一段代码
do_shortcode
筛选到
comment_text
.
注意:未测试上述任何一项。小心复制和粘贴