1

我正在研究 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;
    }
} 

使用此方法的其他问题是发布链接。

4

0 回答 0