Kebetulan ada teman blogger, mas Heryan Tony, pada artikel sebelum ini menanyakan bagaimana membuat Recent Comments tanpa menggunakan plugin atau memanfaatkan widget dari wordpress. Sebenarnya ini juga termasuk dalam daftar yang akan diposting berikutnya. Tetapi sepertinya memang harus dipercepat. Tidak apa-apalah sehari dua atau tiga posting kalau memang dapat berbagi infromasi (ngeles mode = ON
). Setelah dicoba-coba oprek fungsi di core wp lokal (dengan berbagai kesalahan tentunya
), akhirnya didapatkan sebuah cara berikut:
<h3>Recent Comments</h3>
<?php
global $wpdb;
$sql = "SELECT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,50) AS com_excerpt FROM $wpdb->comments INNER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$recentComments = $pre_HTML;
$recentComments .= "n<ul>";
foreach ($comments as $comment) {
$recentComments .= "n<li>".strip_tags($comment->comment_author) .": " . "<a href="" . get_permalink($comment->ID)."#comment-" . $comment->comment_ID . "" title="on ".$comment->post_title . "">" . strip_tags($comment->com_excerpt)."</a></li>";
}
$recentComments .= "n</ul>";
$recentComments .= $post_HTML;
echo $recentComments ;
?>
Ubah angka 10 pada DESC LIMIT 10 untuk menambah jumlah komen yang ingin ditampilkan.
Untuk menyaring supaya komentar dari admin blog tidak ikut dimasukkan, kita dapat menambah AND comment_author != 'YOUR-NAME-HERE' pada bagian berikut ini:
$sql = "SELECT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,50) AS com_excerpt FROM $wpdb->comments INNER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_author != 'admin' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
Ubah kata “admin” dengan nama admin yang dipakai.
Saya tidak tahu apakah ini dapat berfungsi di themenya mas Heryan dan teman-teman yang lain atau tidak. Juga bentuk penyajiannya masih sederhana tanpa avatar. Mungkin ada yang bisa memperbaiki agar terlihat lebih menarik. Atau kalau teman-teman punya resep yang lain silahkan bagi-bagi ya.
update: 2009-06-18 21:41:42
- Penambahan filterisasi komentar admin, sumber: Remove Admin from Recent Comments List (No Plugin) dari blognya mas Arun Basil Lal.
- Thanks buat bang Ganda untuk koreksinya.

42 Responses to “Trik Cepat: Recent Comments Tanpa Plugin dan Widget”
Wah..Wah..Muantep ni, Boss.
Thx banget.
semoga bermanfaat …
Makasih atas trik dahsyatnya sahabatku
bagaimana mas? tertarik untuk punya wordpress hosting dan install sendiri belum?
Wah.. keren skali.. tapi pasang kodenya di sidebar atau dimana nya neh mas.? kalo di sidebar kan sama aja dengan recent comment
Lhah? Ini kan memang recent comment mas. Lihat aja judulnya

rismaka´s last blog ..HTTP Request, Faktor Paling Utama Penentu Performa Web
Maksud aku recent comment yang dari wordpress. Masak mas rismaka gag ngerti sih maksud aku. Apa bedanya sama script yg ini?
CatatanRudy.com´s last blog ..Upgrade Blog Malah Bikin Error
mengapa harus memakai script ini kalau secara default engine wp sudah menyediakannya pada fitur widget, mungkin itu pertanyaan dari mas Rudy?
1) ada beberapa theme wp yang mungkin tidak menambahkan fitur pemanggilan widget
2) dengan memakai script ini kita dapat memodifikasinya lebih lanjut, misalnya menambahkan avatar, comment excerpt dan lainnya
atau script ini lebih cocok ke orang2 kayak bang nomercy ya? bukan orang awam kayak saya.. hahahahahaha…. *lari sebelum di jitak bang nomercy*
ganda´s last blog ..Offline Tools : HTML Special Chars Escape Tools
Wah apalagi saya bang… lebih awam lagi
BTW, saya jadi mikir nih, fungsi recent koment itu urgent ga ya? Ayo kita pikirin usability-nya dan accessibility-nya (mencoba jadi daniiswara
)
rismaka´s last blog ..HTTP Request, Faktor Paling Utama Penentu Performa Web
pada dasarnya setiap link ataupun kalimat dan kata kunci haruslah dapat memberikan suatu informasi barulah dapat dikatakan usable … kalau daftar komennya hanya berupa nama dan atau judul artikel saja rasanya kurang usable … kecuali kalau diberi tambahan berupa excerpt dari komentar tersebut … *ini menurut saya sih … jadi rasanya kurang usable* … entah menurut pakar usability dan accessibility kita (sambil mencoba menghubungi mas Dani Iswara melalui telepati)
untuk gravatar, bisa diambil dengan cara pemanggilan fungsi

get_gravatar()berdasarkan email sang comment author. CMIIWganda´s last blog ..Offline Tools : HTML Special Chars Escape Tools
get_avatar () bang bukan get_gravatar () … hehehe … nanti saya tambahkan sebagai pilihan …
hehehehe.. itu lah itu.. hehehe
thankx for correcting me..

ganda´s last blog ..Offline Tools : HTML Special Chars Escape Tools
Saya dari dulu nyoba utk meng”exclude” nama saya sendiri di recent komentar tsb, tapi sampe sekarang tidak bisa. Ada trik yg bisa bantu saya mas?
rismaka´s last blog ..HTTP Request, Faktor Paling Utama Penentu Performa Web
kan bisa di filter berdasarkan comment author id, atau comment author email?
ganda´s last blog ..Offline Tools : HTML Special Chars Escape Tools
sudah saya tambahkan di artikelnya mas …
Menurut saya script sql diatas ada kelemahannya bang, jika suatu saat sang author mengganti namanya, pastilah admin repot2 ganti script lagi untuk bagian
AND comment_author != 'YOUR-NAME-HERE'Misalnya nama saya dulunya thegands, dan sekarang saya pakai inisial ganda, pasti script ini perlu di ubah2 lagi..
ini solusi selanjutnya dari saya bang..
SELECT ID, user_id, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,50) AS com_excerpt FROM $wpdb->comments INNER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' AND user_id != '1' ORDER BY comment_date_gmt DESC LIMIT 10
di sini saya juga menghilangkan keyword distinct karena menurut saya tidak akan berguna keyword distinct di sini. Apa yang harus di bedakan? Karena jika distinct di hilangkan dengan di gunakan pada script tersebut, hasilnya sama saja.
Dan kok pakai LEFT OUTER JOIN bang? Bukannya setiap postingan memiliki post ID. Demikian juga dengan comment. Post ID pastilah selalu berisi. Terkecuali adminnya iseng menghapus salah satu ID tabel post atau tabel comment. Atau malah keduanya.
Atau dengan kode lain seperti ini(berdasarkan author_email)
SELECT $wpdb->posts.ID, user_id, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,50) AS com_excerpt FROM $wpdb->comments INNER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) INNER JOIN $wpdb->users ON $wpdb->users.user_email = $wpdb->comments.comment_author_email WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10
Walau solusi kedua juga generic, namun script ini memiliki kelemahan apabila sang admin mengganti emailnya. Jadi saya sarankan script pertama.
CMIIW
ganda´s last blog ..Offline Tools : HTML Special Chars Escape Tools
Thanks

rismaka´s last blog ..HTTP Request, Faktor Paling Utama Penentu Performa Web
kalau untuk sekedar memfilter admin berdasarkan email kan sama saja bang dengan script yg di artikel, tinggal mengganti
AND comment_author != 'YOUR-NAME-HERE'menjadiAND comment_author_email != 'YOUR ADMIN EMAIL'tetapi bang Ganda benar, kalau kita hanya memakai user name atau email sebagai filter dan digabung dengan OUTER JOIN, maka kalau ada pengunjung memakai user name atau email yang sama akan ikut dihilangkan …
jadi kesimpulannya lebih baik memakai
user_idlogin, karena bagaimanapun admin blog tetap yang itu itu juga dan user_id ini tidak dapat dipakai oleh pengunjung …terima kasih atas petunjuknya bang … memang hebring dah abang satu ini …
saya buat posting lanjutan saja ya bang
wah kalo ini nyerah.. ampun gaptek diriku
mas Suwung mah main seo melulu ..
Sepertinya pake kode html ya mas. Kalo gitu cocok juga buat blogspot kayaknya..
iskandaria´s last blog ..4 Tips Ampuh untuk Mempertahankan Semangat Ngeblog Anda
kalau tidak salah (koreksi kalau saya salah ya) blogspot memakai metode javascript … tetapi saya tidak mengetahui detilnya … mungkin teman-teman yang terbiasa main coding di blogspot bisa bantu … atau coba hubungi mba’ Cebong Ipiet yang dah master bikin template untuk blogspot …
untuk blogspot, sudah tersedia jstl versi blogspot(google) untuk mengambil comment details. Tinggal bermain2 di loop dan sort berdasarkan tanggal komentar.
ganda´s last blog ..Offline Tools : HTML Special Chars Escape Tools
cara cepatnya ambil dari feed comment aja …
wah info bagus neeh. perlu dicoba ga ya.
Selamat siang oke
kawanlama95´s last blog ..Imajinasi krativitas
( semoga dapat dipakai … hihihi *sambil deg-degan*
)
wah, saya pengguna blogspot, nyoba nya gimana ya? he..
andrie callista´s last blog ..Pendakian Menuju Benteng Belanda
saya belum pernah coba buat blogspot … nanti saya coba-coba … blog saya di blogspot dah lama sekali gak dibuka-buka …
… tetapi rasanya blogspot memakai javascript untuk widgetnya …
sepertinya tidak harus pakai javascript untuk yang satu itu bang.
ganda´s last blog ..Offline Tools : HTML Special Chars Escape Tools
tertarik si ya
cuma kan daku gaptek
oh komen admin bisa di filter yah kalo make script ini? wah sip banget nih kalo gitu.

wajib di coba ni
febri´s last blog ..akhirnya yang saya takutkan terjadi (beserta solusinya)
Betul itu… wajib dicoba..
rismaka´s last blog ..HTTP Request, Faktor Paling Utama Penentu Performa Web
biar praktis dimasukkan ke functions.php aja
kalau dimasukkan ke function.php apakah lalu tidak menjadi sama dengan yang di widget? kecuali kalau sudah dimodifikasi lengkap, misalnya dengan gravatar, excerpt comment, atau yang lainnya … eh, malah ini jadinya plugin ya …
… sebenarnya kata-kata ‘tanpa plugin dan widget’ itu juga kurang tepat … karena ini juga termasuk keduanya … mungkin harus ditambah ‘tanpa perlu bantuan’ …
Wahh…wah…
Tq ya sob infonyaa……
sama-sama bro … ini juga atas bantuan teman-teman yang lebih mengerti daripada daku …
[...] posting artikel kemarin tentang trik cepat membuat Recent Comments tanpa menggunakan plugin atau memanfaatkan fitur widget, maka kali ini dilanjutkan bagaimana caranya menghilangkan Admin dari daftar Recent Comments [...]
ka’ adrian,pas saya udah coba,cuman koq nick name temen2 yang udah komentar gak jadi link y ka’?

kalo bisa sekalian dikasih tau ka’ caranya biar linknya dofollow.
febri´s last blog ..temen baru = award baru
keep posting heb and maju terus !
Full Software Collextions´s last blog ..Windows XP NASA SP3 SATA 2010