西门的后花园

一个热爱网络的年轻人的博客

让WordPress博客评论的HTML代码无法编译

我也做了两款主题了,虽然样子都不怎么样,非常简单,但功能基本都满足日常需求。今天分享的让博客评论里的HTML代码无法编译,也算是我搜集到的小技巧之一。

你一定有这种烦恼,求助一些代码,网友好心在评论里留言给你,结果都解析了,非常蛋疼。我之前也考虑过这个问题,而且还问过博客圈几位牛人,他们虽然都跟我说了一下,但是我自己太笨,还是搞不定。我当时的想法就是把评论里的“<”、“>”转换成“&lt;”、“&gt;”,这样通过HTML编译,自动变成了“<”、“>”。但是我当时只想这用jQuery去转,不会PHP。后来看见的方法是用PHP,当然,网上全都是转载的,而且我复制过来还不对,所以继续Google,找到一国外人的代码,搞定了。不过不一定他是原作者。

在functions.php的PHP代码里加入:

//禁用wordpress评论html代码
// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {
	// convert everything in a comment to display literally
	$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
	// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
	$incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );
	return( $incoming_comment );
}
// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {
	// Put the single quotes back in
	$comment_to_display = str_replace( ''', "'", $comment_to_display );
	return $comment_to_display;
}
add_filter( 'preprocess_comment', 'plc_comment_post', '', 1);
add_filter( 'comment_text', 'plc_comment_display', '', 1);
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1);
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1);

效果可以在我博客评论里留言HTML代码便可以看见啦!这样下次大家给我留言HTML代码,就不怕被编译啦!

原链接

评论列表

  1. 记录备份咯~

  2. 呃,这不叫编译啦……你这里做的操作叫做『HTML实体化』

    • 其实这代码我也不懂什么意思。第一段写的编译是我想用jQuery的方法强转一下,不让HTML编译掉,嗯,就是这样,不懂PHP。

  3. 这个不错噢..特别是那些做主题的博客和技术博客。呵呵

  4. Ray说的是正确的,跟编译拉不上什么关系,但是我也标记了一下,对于我这个正在写第一个WP主题的人,也有帮助的, 😎 。

  5. 核心函数 htmlspecialchars :mrgreen: :mrgreen:

  6. 这个html代码怎么这么复杂的

  7. 这个比较有用 收藏先

  8. WP在评论里过滤HTML标签是考虑到安全性的问题,因为我们永远不能相信用户输入,注入式攻击就是这么来的。
    不过用htmlspecialchars再转换回来看起来也挺安全的。
    再不过,为了加强安全性,我还是不允许用户输入HTML了 ➡

  9. 原来是这样啊……

  10. 这个我都没有太多的关注,毕竟我不是被it搞的人。
    btw liao.it是你的站还是在你这里做广告的啊?

  11. 呵呵 我来看看你了啊

  12. 这个是一个很好的办法,给我的主题也用上去~

  13. 😮 直接剥去所有标签 strip_tags 🙄

  14. 那么如果是这样的话,那还是让它可以编译吧。至少看到都是无法编译的代码,视觉效果上不好

    • 我要的是别人提供的代码,我也好复制,编译了还怎么复制?我主要讲的是贴代码,和美观无关。

  15. 有点乱,还得仔细研究一下!

  16. 又学到的新技术了,哈哈哈

  17. 我来支持一下,不错

  18. sain

    借宝地测试下然后抄代码
    <script>
    alert();
    </script>

  19. 欧耶

    请问怎么让评论运行自定义的简码啊。。。。愁死了

  20. 这个写法绕弯子了,其实就是转换为html实体,comment_text这个钩子用htmlspecialchars处理一下再return就行了

  21. 😐 😈 😆 试试!!!!!!!!!

欧耶进行回复 取消回复

分类目录