我付出了巨大的努力来确保这个博客上的评论系统快速且功能丰富。 评论系统是基于 AJAX 的,因此您无需担心页面刷新。 您还可以发布指向 GitHub gists、CodePen 笔和 JSFiddle fiddles 的链接,并在评论中查看它们的呈现。 我在系统中注册评论后完成的那些任务。 但是,如果您想在评论内容被处理之前对其进行修改,然后将其标记为垃圾邮件或被清除怎么办? 使用 WordPress 挂钩非常简单!
PHP的
这 preprocess_comment
钩子允许我们在处理之前获取评论数据。 这是我如何使用这个钩子,包装 `text`
中的字符串 <code>
元素和编码角度字符 <pre>
要素:
// Manage comment submissions
function preprocess_new_comment($commentdata) {
// Replace `code` with <code>code</code>
$commentdata['comment_content'] = preg_replace("/`(.*)`/Um", "<code>$1</code>", $commentdata['comment_content']);
// Ensure that code inside pre's is allowed
preg_match_all("/<pre(.*?)>(.*)</pre>/", $commentdata['comment_content'], $pre_matches); // $2
foreach($pre_matches as $match) {
$immediate_match = str_replace(array('<', '>'), array('<', '>'), $match[2]);
$commentdata['comment_content'] = str_replace($match[2], $immediate_match, $commentdata['comment_content']);
}
// Return
return $commentdata;
}
add_action('preprocess_comment', 'preprocess_new_comment');
应该将此片段添加到functions.php,就像您期望的WordPress主题增强一样。
我喜欢 WordPress 钩子系统——它使 CMS 非常强大和可定制。 我也使用这个钩子来防止 WordPress 评论垃圾邮件。 由于许多用户将 HTML 代码放在我的评论中,因此正确编码这些角度字符很重要。 最后,您永远不知道您的用户将提交什么以及每个站点将接受什么——使用这个 WordPress 钩子来控制!