开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

WordPress AJAX 评论

Web 上有许多功能都在请求 AJAX 化。无论是在民意调查中投票还是简单地评论博客文章,真的没有理由为如此简单的事情重新加载整个页面。这个博客多年来一直在 WordPress 中使用 AJAX 评论,但直到最近我才找到处理这些评论的最优化方式。以下是处理 AJAX 评论系统的 WordPress PHP 端的方法。

PHP

在主题的 function.php 文件中添加以下函数:

// Method to handle comment submission
function ajaxComment($comment_ID, $comment_status) {
	// If it's an AJAX-submitted comment
	if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
		// Get the comment data
		$comment = get_comment($comment_ID);
		// Allow the email to the author to be sent
		wp_notify_postauthor($comment_ID, $comment->comment_type);
		// Get the comment HTML from my custom comment HTML function
		$commentContent = getCommentHTML($comment);
		// Kill the script, returning the comment HTML
		die($commentContent);
	}
}

上面的函数接收新的评论 ID(此时评论已经发布到数据库)和 comment_status,如果你想知道的话。如果评论是通过 AJAX 提交的,则检索评论元数据,调用 wp_notify_postauthor 向作者发送有关新评论的电子邮件通知,最后一步是输出格式化的评论 HTML,这是我的formatComment 函数完成。最后一步是添加一个 WordPress 动作来触发上面的函数:

// Send all comment submissions through my "ajaxComment" method
add_action('comment_post', 'ajaxComment', 20, 2);

现在所有新的 AJAX 提交的评论都通过 ajaxComment 方法进行过滤,只输出特定的评论 HTML,允许您将评论内容插入到客户端的相关父 OL/UL 元素中.

过去,我允许加载整个页面,那是……很慢。非常慢。上述方法允许简单的 PHP/AJAX 评论处理,允许其他相关的评论处理方法(包括通过电子邮件发送帖子的作者),并立即输出评论 HTML。谁想到会这么简单?!

未经允许不得转载:我爱分享网 » WordPress AJAX 评论

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏