Saat ini saya sedang memuat satu posting menggunakan ajax. Meskipun pemuatan posting berfungsi dengan baik, saya tidak bisa mendapatkan komentar untuk dimuat. Ini kode saya:
Javascript saya untuk memuat posting:
<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 melewati functions.php dengan cara ini:
function implement_posts()
{
//<?php
get_template_part( 'loop', 'single' );
die();
}
Sekarang inilah kode tempat saya memuat konten tulisan saya:
<?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";
}
?>
Sekarang, bahkan untuk posting yang memiliki komentar saya mendapatkan "Tidak ada komentar" ditampilkan. Segalanya bekerja dengan benar. Adakah yang bisa membantu saya?
Terima kasih.
$linkid = "p=".$_POST["postid"];
tidak aman injeksi verry sql. meskipun wordpess memeriksa ini, Anda mungkin ingin melakukannya sendiri.Jawaban:
Mengutip Codex pada
have_comments
fungsi:Masalahnya adalah bahwa penangan ajax Anda membuat objek WP_Query sendiri. Perhatikan bahwa Anda tidak menelepon
the_post()
, sebaliknya Anda menelepon$posti->the_post()
. Logika yang sama berlaku untuk komentar juga.Coba yang berikut ini:
sumber
Menurut pendapat saya, akan lebih baik untuk pergi dengan JQuery
.load($[this].attr('href') '.div-with-content-and-comment');
Daripada memastikan Anda memiliki single.php yang memiliki markup dengan
class="div-with-content-and-comment"
Anda ingin memuat melalui ajax.sumber
Lihatlah sumber
have_comments()
- cek ini mengambil data dari$wp_query
objek global , yang tidak digunakan dalam kasus Anda.Jadi langkah pertama adalah mengganti
have_comments()
cek dengan$posti->have_comments()
.sumber