Ajax başına yüklenen bir gönderi için yorumların nasıl çalışmasını sağlar?


10

Şu anda ajax kullanarak tek bir gönderi yüklüyorum. Yükleme sonrası tamam olsa da, yorumları yüklemek için alamıyorum. İşte benim kod:

Yazı yüklemek için benim javascript:

<script>
$(".view_post").click(function(e) {
    e.preventDefault();
    postid = $(this).attr("rel");
    $.ajax({
        url:"/wp-admin/admin-ajax.php",
        type:'POST',
        data:'action=posts_open&postid='+postid,
        success: function(html){
            $("#b_contentwrapper").empty();
            $("#b_contentwrapper").append(html);
        }
    });
});
</script>

Javascript, function.php dosyasından şu şekilde geçer:

function implement_posts()
{
    //<?php
    get_template_part( 'loop', 'single' );
    die();
}

Şimdi burada aslında benim posta içeriği yüklemek kodu:

<?php
    $linkid = "p=".$_POST["postid"];
    $posti = new WP_Query($linkid);
    $posti->the_post();
    echo "Time: ";
    the_time('F jS, Y');
    echo "<br />";
    the_category(', ');
    echo "<br />";
    the_title();
    echo "<br />";
    the_content();
    echo "<br />";
    comment_form();
    ?>
    </div>
    <?php if (have_comments()) {
        echo "Comments ok";
    }
    else
    {
        echo "No comments";
    }
    ?>

Şimdi, yorum içeren gönderiler için bile "Yorum yok" görüntüleniyor. Diğer her şey düzgün çalışıyor. Biri bana yardım edebilir mi?

Teşekkür ederim.


$linkid = "p=".$_POST["postid"];verry sql enjeksiyon güvenli değildir. wordpess bunu kontrol etse de kendiniz yapmak isteyebilirsiniz.
RTB

Yanıtlar:


1

Codex have_commentsişlevinde alıntı yapmak için :

Bu işlev, ayarlanacak global $ wp_query nesnesine dayanır - bu genellikle The Loop'taki durumdur.

Sorun, ajax işleyicinizin kendi WP_Query nesnesini oluşturmasıdır. Aramadığınızı the_post(), bunun yerine arama yaptığınızı unutmayın $posti->the_post(). Aynı mantık yorumlar için de geçerlidir.

Takip etmeyi dene:

if ($posti->have_comments()) {
    echo "Comments ok";
}  else {
    echo "No comments";
}

0

Benim düşünceme göre, bir JQuery ile gitmek daha iyi olurdu .load($[this].attr('href') '.div-with-content-and-comment');

Daha sonra class="div-with-content-and-comment"ajax ile yüklemek istediğiniz işaretleme içeren bir single.php olduğundan emin olun .


0

Kaynağına bakın have_comments()- bu kontrol $wp_query, sizin durumunuzda kullanılmayan global nesneden veri alır .

Bu nedenle ilk adım, have_comments()çek ile değiştirmek olacaktır $posti->have_comments().

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.