WordPress小教程在文章中插入HTML/PHP代码

  • A+
所属分类:其他教程

WordPress小教程在文章中插入HTML/PHP代码
WordPress小教程在文章中插入HTML/PHP代码。如果不使用插件的话,在文章中和评论中是无法插入一些 PHP、CSS、HTML、JS 等代码的,就算使用了 code 或 pre 标签也不行,因为 WordPress 自身有一个强大的 HTML 标签过滤系统,你插入的 html 或者 PHP 标签会直接消失;
将下面的代码加入主题的functions.php中,然后使用code或者pre标签来插入代码即可:
参考一:
// 转换 code 标签中的 html 代码
add_filter('pre_comment_content', 'lxtx_encode_code_in_posts_comments');
add_filter('the_content', 'lxtx_encode_code_in_posts_comments');
function lxtx_encode_code_in_posts_comments($source) {
$encoded = preg_replace_callback('/(.*?)<\/code>/ims',
create_function(
'$matches',
'$matches[1] = preg_replace(
array("/^[\r|\n]+/i", "/[\r|\n]+$/i"), "",
$matches[1]);
return "" . esc_html( $matches[1] ) . "";'
),
$source);
if ($encoded)
return $encoded;
else
return $source;
}

参考二:
// 转换 pre 标签中的html代码
// 使用'the_content'钩子.
add_filter( 'the_content', 'pre_content_filter', 0 );

function pre_content_filter( $content ) {
return preg_replace_callback( '|(.*)
参考三:
// 转换 code 标签中的 html 代码
add_filter('pre_comment_content', 'encode_code_in_comment');
function encode_code_in_comment($source) {
$encoded = preg_replace_callback('/(.*?)<\/code>/ims',
create_function('$matches', '$matches[1] = preg_replace(array("/^[\r|\n]+/i", "/[\r|\n]+$/i"), "", $matches[1]);
return "" . htmlentities($matches[1]) . "";'), $source);
if ($encoded)
return $encoded;
else
return $source;
}
// 转换 pre 标签中的 html 代码
// 文章和评论
function meow_prettify_esc_html($content){
$regex = '/(]*?class\s*?=\s*?[",\'].*?prettyprint.*?[",\'].*?>)(.*?)(<\/pre>)/sim';
return preg_replace_callback($regex, 'meow_prettify_esc_callback', $content);}
function meow_prettify_esc_callback($matches){
$tag_open = $matches[1];
$content = $matches[2];
$tag_close = $matches[3];
$content = esc_html($content);
return $tag_open . $content . $tag_close;}
add_filter('the_content', 'meow_prettify_esc_html', 2);
add_filter('comment_text', 'meow_prettify_esc_html', 2);

pre和code可以根据需要修改代码中的正规则匹配

  • 我的微信公众号
  • 扫一扫关注
  • weinxin
  • 我的新浪微博号
  • 扫一扫关注
  • weinxin
小辉博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: