我正在研究 wordpress 主题,你可以看看:greenzone.pl。我想做的是在中间 div 中显示所有帖子的可用性,即单个帖子、评论、附加图片等。2 侧 div 永远不应该重新加载。我对尝试使用的方法的任何替代方法持开放态度(也许是 IFRAME?)。
要加载单个帖子,我使用了 jquery .load()
$.ajaxSetup({ cache: false });
$(".openpost, .comments-link").click(function() {
var post_url = $(this).attr("href");
$(".container").load(post_url);
return false;
});
$(".closepost").click(function() {
$(".container").load(index.php .postlist);
return false;
});
我遇到了一个大问题——我不能使用 ajax 评论(我尝试了很多插件、教程等,没有任何效果)——所以基本上当你发布回复时,你会被重定向到例如。http://greenzone.pl/?p=32#comment-26。我目前的评论js是:
var commentform = $('#commentform'); // find the comment form
commentform.prepend('<div id="comment-status" ></div>'); // add info panel before the form to provide feedback or errors
var statusdiv = $('#comment-status'); // define the infopanel
commentform.submit(function(){
//serialize and store form data in a variable
var formdata = commentform.serialize();
//Add a status message
statusdiv.html('<p>Processing...</p>');
//Extract action URL from commentform
var formurl = commentform.attr('action');
//Post Form with data
$.ajax({
type: 'post',
url: formurl,
data: formdata,
error: function(XMLHttpRequest, textStatus, errorThrown) {
statusdiv.html('<p class="wdpajax-error" >You might have left one of the fields blank, or be posting too quickly</p>');
},
success: function(data, textStatus) {
if (data == "success")
statusdiv.html('<p class="ajax-success" >Thanks for your comment. We appreciate your response.</p>');
else
statusdiv.html('<p class="ajax-error" >Please wait a while before posting your next comment</p>');
commentform.find('textarea[name=comment]').val('');
}
});
});
和 php:
add_action('comment_post', 'ajaxify_comments',20, 2);
function ajaxify_comments($comment_ID, $comment_status) {
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
//If AJAX Request Then
switch($comment_status){
case '0':
//notify moderator of unapproved comment
wp_notify_moderator($comment_ID);
case '1': //Approved comment
echo "success";
$commentdata = &get_comment($comment_ID, ARRAY_A);
$post = &get_post($commentdata['comment_post_ID']);
wp_notify_postauthor($comment_ID, $commentdata['comment_type']);
break;
default:
echo "error";
}
exit;
}
}
使用此方法的其他问题是发布链接。