Cara Memperbaiki Threaded Comment Blogger yang Rusak di Template Custom
Threaded comment Blogger memungkinkan pengunjung membalas komentar tertentu sehingga percakapan dapat mengikuti konteks komentar induknya. Pada template Blogger custom, fitur ini cukup sering bermasalah: tombol Balas tidak merespons, reply hanya menuju form komentar paling bawah, nested comment terlihat flat, tombol Balasan tidak dapat collapse, editor komentar berada di lokasi yang salah, sampai CSS template justru menutupi struktur thread yang sebenarnya sudah dibuat oleh Blogger.
Kenapa Threaded Comment Blogger Bisa Bermasalah?
Blogger sebenarnya sudah mempunyai engine threaded comment. Engine inilah yang mengatur komentar utama, hubungan reply, comment editor, inline thread, tombol Balas dan status thread terbuka atau tertutup. Dengan kata lain, tampilan komentar yang terlihat flat belum tentu berarti informasi reply benar-benar hilang.
Masalah lebih sering terjadi karena lapisan template di atas engine Blogger sudah berubah. Template lama mungkin masih mempunyai script komentar generasi sebelumnya, CSS dapat menyembunyikan .comment-replies, optimasi dapat memblokir JavaScript Blogger, sedangkan script custom dapat memindahkan elemen native ke lokasi yang tidak lagi sesuai dengan asumsi renderer.
Diagnosis Cepat Sebelum Mengubah Template
Sebelum membuka Edit HTML, lakukan pemeriksaan berurutan. Cara ini membantu menentukan lapisan mana yang benar-benar rusak sehingga kita tidak menambahkan patch ke bagian yang sebenarnya masih sehat.
Periksa Setting Native Comment Blogger
Langkah pertama berada pada dashboard Blogger. Lokasi komentar sebaiknya menggunakan mode Disematkan / Embedded. Mode tersebut memungkinkan respons terhadap komentar ditampilkan langsung pada halaman posting dan merupakan fondasi paling aman untuk threaded discussion.
Jika setting masih menggunakan Full Page atau Popup, ubah terlebih dahulu lalu lakukan pengujian ulang sebelum mengedit template. Ini merupakan pemeriksaan sederhana tetapi cukup banyak kasus Reply Blogger selesai pada tahap ini.
Per-post Comment Feed yang Sering Terlewat
Salah satu studi kasus yang menarik berasal dari Blogger Community. Dua blog menggunakan template yang sama. Pada satu blog threaded comment bekerja, sedangkan blog lainnya hanya menampilkan komentar non-threaded. Perbedaannya ternyata bukan pada template, tetapi pada Site Feed.
Jika Izinkan feed blog menggunakan mode Custom, periksa opsi Per-post comment feeds. Jangan biarkan nilainya None / Tidak Ada ketika blog membutuhkan threaded comment.
Jika setelah setting ini threaded comment kembali muncul, tidak ada alasan untuk mengganti JavaScript template. Inilah contoh mengapa diagnosis harus dilakukan dari konfigurasi Blogger terlebih dahulu.
Bedakan Native Comment dan Threaded Comment Hack
Template Blogger lama tidak selalu menggunakan renderer threaded modern. Sebagian template mempunyai sistem Reply custom yang bekerja dengan memodifikasi URL #comment-editor dan memasukkan parentID. Script semacam ini sering memiliki fungsi seperti:
Pada metode tersebut, tombol Reply bisa kembali bekerja setelah fungsi lama diperbaiki, tetapi nested visual belum tentu ikut kembali. Inilah alasan beberapa tutorial memperbaiki tombol Reply tetapi komentar masih terlihat flat.
Periksa comment_picker dan threaded_comments
Dokumentasi Blogger untuk template custom menggunakan conditional yang memilih antara komentar threaded dan komentar biasa. Pada template custom yang sangat lama, bagian ini dapat hilang atau masih selalu memanggil includable comments.
Jika template hanya mempunyai:
periksa apakah conditional threaded memang hilang. Pada template yang mempunyai comment_picker, prinsipnya tetap sama: ketika showThreadedComments aktif, renderer harus diarahkan ke threaded_comments.
Tombol Balas Terlihat tetapi Tidak Bekerja
Salah satu metode yang pernah populer pada template Blogger Indonesia adalah menyembunyikan JavaScript bundle bawaan Blogger untuk mengejar optimasi. Teknik semacam ini memang dapat mengurangi resource, tetapi juga berisiko menghilangkan dependency yang dipakai sistem komentar.
Jika template menggunakan modifikasi penutup body, head, b:js='false', atau teknik lain yang sengaja memblokir script Blogger, lakukan test menggunakan versi normal terlebih dahulu.
Jika setelah bundle Blogger kembali dimuat tombol Balas bekerja, akar masalahnya bukan HTML tombol tetapi JavaScript dependency yang sebelumnya ikut diblokir.
Error Cannot Read Properties of Null
Template custom lama sering mengasumsikan data komentar selalu tersedia. Ketika data ternyata null, seluruh script dapat berhenti dan fitur lain setelah error tersebut tidak pernah dieksekusi.
Daripada menutupi error menggunakan try/catch besar, berikan guard tepat setelah data dibuat.
Prinsip yang sama berlaku pada selector DOM. Pastikan elemen ditemukan sebelum membaca property atau menjalankan method.
Error addComment pada Sistem Komentar Lama
Pada comment hack lama kita juga dapat menemukan error seperti:
Biasanya fungsi lama mencoba membaca:
Jika object Msgs tidak ada, berikan fallback.
Jangan memperbaiki masalah data dengan sekadar memindahkan tombol. Error ini berasal dari state JavaScript, bukan posisi visual tombol.
Memahami Struktur DOM Runtime Blogger
Ketika threaded comment berhasil dirender, struktur DOM aktual jauh lebih penting daripada markup template sebelum render. Pada salah satu pengujian nyata, struktur parent dan reply terlihat seperti berikut:
Perhatikan bahwa .thread-toggle dan ol.thread-chrome berada dalam .comment-thread.inline-thread. Posisi ini menjadi sangat penting saat kita membuat custom tombol Balasan.
Cara Memeriksa DOM dengan Console
Gunakan Console browser untuk melihat elemen yang benar-benar dibuat Blogger.
Reply Berhasil tetapi Nested Tetap Flat
Ini salah satu kasus yang paling membingungkan. Tombol Balas bekerja, komentar terkirim sebagai reply, tetapi beberapa level selanjutnya terlihat berada pada indent yang sama.
Jangan langsung menganggap CSS salah. Blogger dapat merender beberapa reply lanjutan sebagai sibling di dalam inline-thread yang sama. Karena itu nested visual native Blogger tidak selalu identik dengan jumlah hubungan percakapan yang kita bayangkan.
Jika kebutuhan benar-benar memerlukan renderer bertingkat tanpa batas, Blogger menyediakan informasi parent seperti inReplyTo pada data komentar. Namun ketika kita menggunakan data tersebut untuk membangun tree sendiri, kita sudah masuk ke wilayah custom renderer dan harus menangani lebih banyak fungsi sendiri.
Memahami maxThreadDepth
Pada beberapa template lama kita dapat menemukan setting:
atau konfigurasi native:
Menaikkan angka ini tidak selalu berarti browser akan membuat DOM nested empat atau lima tingkat. Renderer Blogger dapat melakukan normalisasi visual sendiri.
Tombol Balas dan Hapus Berpindah ke Segmen yang Salah
Pada nested DOM, parent li.comment dapat mengandung banyak child li.comment. Karena itu selector berikut terlihat sederhana tetapi berbahaya:
Selector tersebut dapat mengambil tombol dari nested child. Solusinya adalah memastikan elemen tersebut dimiliki oleh li.comment yang sedang diproses.
Kemudian tombol Balas:
Teknik yang sama dapat digunakan untuk tombol Hapus dan action lainnya.
Membuat Action Bar Balas, Hapus dan Balasan
Setelah setiap tombol dipastikan mempunyai owner yang benar, action dapat ditampilkan dalam satu baris agar interface lebih mudah dipahami.
Namun khusus tombol Balasan, jangan buru-buru memindahkan elemen native .thread-toggle ke action bar. Ada alasan teknis penting yang akan dibahas pada bagian berikut.
Jangan Memindahkan thread-toggle Native
Pada hasil render Blogger, toggle dan daftar reply mempunyai hubungan struktur:
Jika .thread-toggle dipindahkan ke dalam comment-block hanya untuk menyatukannya dengan Balas dan Hapus, fungsi native collapse dapat kehilangan konteks struktur yang dibutuhkan.
Membuat Tombol Balasan Proxy
Toggle asli dapat tetap berada pada struktur Blogger dan hanya disembunyikan secara visual.
Kemudian action bar menggunakan tombol visual:
Tombol proxy meneruskan aksi ke anchor native di dalam toggle.
Dengan metode tersebut UI dapat diatur bebas sementara struktur engine Blogger tidak dipindahkan.
Kenapa thread-collapsed Tidak Menutup Reply?
Ini merupakan kasus yang mudah disalahartikan sebagai error tombol. Saat Balasan diklik, class native ternyata sudah berubah dari:
menjadi:
Namun daftar balasan masih terlihat. Ini berarti event JavaScript sebenarnya berhasil. Masalahnya berada pada CSS.
Rule tersebut memaksa reply tetap visible walaupun Blogger sudah mengubah state menjadi collapsed.
CSS Collapse dan Expand yang Lebih Aman
Biarkan state native Blogger menentukan visibility ol.thread-chrome.
Untuk expanded:
Membuat Tombol Balas Fokus ke Comment Editor
Pada beberapa template tombol Balas sudah bekerja tetapi pengguna merasa tombol tidak merespons karena editor berpindah jauh dari posisi tombol. Kita tidak perlu mengganti mekanisme Reply. Cukup berikan feedback berupa smooth scroll.
Script tersebut hanya membantu navigasi. Parent ID dan submit tetap dikelola Blogger.
comment-replybox-thread dan comment-replybox-single
Saat melakukan debugging kita juga perlu mengenali dua container replybox yang dapat digunakan oleh Blogger.
Keduanya dapat menggunakan editor yang sama:
Memperbaiki Emoticon tanpa Menambah Patch
Plugin emoticon sering dibuat untuk muncul tepat di atas #comment-editor. Masalahnya, editor dapat berpindah ketika pengguna membalas komentar. Solusi pertama yang sering terpikir adalah membuat MutationObserver untuk terus mencari editor.
Pendekatan tersebut tidak selalu diperlukan. Jika engine emoticon sudah mempunyai setting target seperti:
ubah dari sumbernya:
Dengan begitu #top-ce menjadi lokasi prioritas dan #comment-editor tetap menjadi fallback. Tidak perlu menambahkan observer atau script pemindah baru.
Membuat Tampilan Threaded Comment Model Timeline
Setelah fungsi native sehat, barulah tampilan dapat dibuat lebih dinamis. Timeline cocok digunakan karena avatar dapat menjadi titik percakapan dan garis vertikal menunjukkan hubungan antar komentar.
Bagaimana cara memperbaiki threaded comment?
Periksa native engine terlebih dahulu, baru custom tampilannya.
CSS Dasar Timeline Comment
Avatar:
Timeline:
Mengatasi Garis Timeline Ganda
Template lama sering sudah mempunyai pseudo-element pada comment, replies atau action. Ketika timeline baru ditambahkan, garis lama masih ikut dirender dan hasilnya terlihat ganda.
Reset hanya elemen yang memang sudah tidak diperlukan.
Membuat Avatar Benar-Benar Bulat
Avatar oval biasanya terjadi karena width dan height tidak konsisten atau image masih menggunakan ukuran bawaan template.
Responsive Nested Comment pada Mobile
Nested comment yang terlihat menarik di desktop dapat menjadi terlalu sempit pada smartphone. Kurangi jarak indent dan ukuran avatar pada layar kecil.
Masalah Login Google tetapi Tidak Bisa Berkomentar
Tidak semua masalah komentar berasal dari template. Blogger menggunakan cookie lintas situs untuk mengenali Google Account pada halaman blog. Browser dengan privacy protection ketat, third-party cookies yang diblokir, cross-site tracking, atau extension tertentu dapat membuat pengguna terus diminta login.
Jangan Gunakan Revert Widget sebagai Langkah Pertama
Tutorial Blogger lama sering menyarankan Revert widget templates to default. Metode tersebut memang dapat mengembalikan markup komentar Blogger yang hilang, tetapi risikonya cukup besar pada template yang sudah banyak dimodifikasi.
Lebih aman membuat backup, membandingkan Blog1 default dengan Blog1 custom, lalu mengambil includable komentar yang dibutuhkan.
Jangan Langsung Mengganti threaded_comment_js
Mengganti keseluruhan includable threaded_comment_js memang pernah menjadi solusi populer. Namun pada template yang masalahnya hanya berasal dari CSS atau Site Feed, tindakan tersebut terlalu agresif.
Troubleshooting Berdasarkan Gejala
Urutan Repair yang Paling Aman
Urutan ini membuat proses debugging lebih mudah dilacak. Jika tahap ketiga belum sehat, jangan menghabiskan waktu membuat timeline pada tahap kesembilan.
Checklist Setelah Threaded Comment Diperbaiki
Prinsip Penting Saat Memodifikasi Komentar Blogger
Native Blogger Tetap Menjadi Fondasi
Threaded comment Blogger bukan sekadar kumpulan komentar yang dibuat menjorok ke kanan. Di belakang tampilannya ada routing template, comment feed, JavaScript action, inline-thread, replybox, comment editor, hubungan parent, state expanded/collapsed dan bahkan dependency browser.
Itulah sebabnya satu script perbaikan belum tentu cocok pada semua template. Template yang kehilangan JavaScript Blogger membutuhkan pendekatan berbeda dengan template yang hanya mempunyai CSS display:block!important. Blog yang mematikan per-post comment feed juga membutuhkan solusi berbeda dengan pengguna Safari yang memblokir cross-site tracking.
Pendekatan yang paling aman adalah mempertahankan sebanyak mungkin mekanisme native Blogger. Gunakan renderer threaded jika masih tersedia, biarkan tombol a.comment-reply menangani Reply, pertahankan .thread-toggle pada struktur aslinya, biarkan Blogger mengelola #comment-editor, lalu gunakan CSS dan komponen visual custom untuk membuat komentar terlihat modern.
Setelah fondasinya sehat, kita bebas membuat timeline, avatar bulat, action bar Balas–Hapus–Balasan, efek hover, smooth focus, emoticon dan responsive nested comment tanpa membuat sistem komentar semakin rapuh.
No comments
💬 Share Your Thoughts & Join the Hall of Fame!
Punya pendapat atau tips tentang artikel ini? Tuliskan komentar kamu sekarang! 🚀
💎 Komentar yang bermanfaat, relevan, dan positif berkesempatan tampil di CodeFlare Hall of Fame dan masuk ke Top Commentators Widget.
👉 Comment now. Share your ideas. Get noticed on codeflare.net