WordPress memiliki sistem komentar native yang dapat digunakan tanpa layanan pihak ketiga. Plus UI WP menampilkan komentar di bawah artikel bersama related posts dan author box.
Mengaktifkan komentar
Buka Settings → Discussion. Pengaturan global dapat menentukan apakah artikel baru menerima komentar.
Pengaturan per artikel
Pada editor artikel, komentar dapat diaktifkan atau dinonaktifkan secara individual dari panel Discussion.
Threaded comments
Aktifkan nested/threaded comments agar balasan dapat dikelompokkan. Jangan menggunakan kedalaman terlalu tinggi karena akan mempersempit area teks di mobile.
Moderasi
- Tahan komentar yang memiliki banyak link.
- Gunakan daftar kata moderasi bila sering mendapat spam.
- Aktifkan email notifikasi hanya untuk event yang penting.
- Hapus spam secara berkala.
Avatar
Theme memakai get_avatar(). Avatar dapat berasal dari Gravatar atau plugin avatar lokal.
echo get_avatar(
get_comment_author_email(),
40
);
Form komentar
WordPress menyediakan fungsi comment_form() yang sudah menangani field, nonce, dan kondisi login.
comment_form(array(
'title_reply' => __('Gabung dalam diskusi', 'plus-ui-wp'),
'label_submit' => __('Kirim komentar', 'plus-ui-wp'),
));
Anti-spam
Menutup komentar artikel lama
Jika situs menerima spam pada arsip lama, WordPress dapat menutup komentar otomatis setelah jumlah hari tertentu.
Integrasi komentar pihak ketiga
Disqus, Facebook Comments, atau sistem lain dapat dipasang, tetapi pertimbangkan privasi, performa, dan ketergantungan pada script eksternal. Sistem native WordPress biasanya paling ringan.
Lazy loading script komentar eksternal
Bila memakai sistem pihak ketiga, muat script ketika area komentar mendekati viewport.
const target = document.querySelector('#comments');
const observer = new IntersectionObserver((entries) => {
if (entries[0].isIntersecting) {
// Muat script komentar eksternal di sini.
observer.disconnect();
}
});
if (target) observer.observe(target);
Keamanan output komentar
Gunakan API WordPress untuk menampilkan nama, URL, dan teks komentar. Jangan mencetak nilai database mentah tanpa escaping.
Schema dan SEO
Komentar berkualitas dapat menambah konteks artikel, tetapi jangan membuat schema palsu hanya untuk mengejar rich result. Gunakan schema dari plugin SEO atau implementasi yang benar-benar sesuai isi halaman.
Checklist komentar
| Pengaturan | Rekomendasi |
|---|---|
| Thread | Aktif, kedalaman wajar |
| Moderasi link | Aktif |
| Avatar | Ukuran kecil/optimal |
| Script eksternal | Hanya jika perlu |
| Spam | Plugin/honeypot ringan |
Template komentar WordPress
Alur dasarnya adalah single.php memanggil comments_template(), kemudian comments.php menampilkan daftar komentar dan form. Pemisahan ini memudahkan theme mempertahankan desain artikel tanpa mencampurkan logic komentar ke template utama.
Daftar komentar
wp_list_comments(array(
'style' => 'ol',
'short_ping' => true,
'avatar_size'=> 40,
));
Paginasi komentar
Artikel dengan ribuan komentar sebaiknya tidak memuat semuanya sekaligus. Aktifkan pembagian komentar per halaman dari Discussion Settings dan gunakan navigasi komentar.
the_comments_pagination(array(
'prev_text' => 'Komentar sebelumnya',
'next_text' => 'Komentar berikutnya',
));
Privacy
Alamat email komentator tidak boleh ditampilkan publik. Jika memakai layanan komentar pihak ketiga, jelaskan pemrosesan data pada Privacy Policy. Jangan mengumpulkan data lebih banyak dari yang diperlukan.
Notifikasi email
SMTP yang benar lebih penting daripada menambah banyak plugin notifikasi. Jika email moderasi tidak masuk, uji konfigurasi pengiriman WordPress terlebih dahulu.
Subscribe to comments
Fitur subscribe membutuhkan penyimpanan consent dan mekanisme unsubscribe yang jelas. Gunakan plugin tepercaya daripada menulis sistem email massal di theme.
Mentions dan formatting
Jangan mengizinkan HTML bebas dari pengguna. WordPress sudah memfilter tag komentar. Jika menambah Markdown atau mention, lakukan melalui plugin yang menangani sanitasi.
Comment count pada kartu
Theme dapat menampilkan jumlah komentar dengan get_comments_number(). Ini lebih ringan daripada query seluruh komentar.
$count = get_comments_number(get_the_ID());
printf('%d komentar', (int) $count);
Performa database
Situs besar sebaiknya menghindari query komentar kompleks pada setiap card homepage. Cache hasil widget popular atau gunakan query yang sudah dioptimalkan WordPress.
Troubleshooting
Form komentar tidak muncul
Periksa apakah komentar ditutup pada artikel atau secara global, dan pastikan template memanggil comments_template().
Balasan tidak bekerja
Pastikan script comment-reply dienqueue ketika threaded comments aktif.
Spam meningkat
Naikkan moderasi, tambahkan anti-spam, dan hindari mempublikasikan komentar dengan banyak tautan secara otomatis.
