Sayang sekali, dari uji coba yang kami lakukan atas -hampir- semua plugin duplikat komentar, tidak ada yang bisa menduplikat komentar WordPress dengan baik. Semua plugin yang ada, bermasalah semua. Hal ini kami ketahui, ketika mencoba melakukan pemindahan komentar WordPress.
Plugin Copy Or Move Comments yang dikembangkan oleh biztechc, dan yang banyak dibahas dan dijadikan referensi banyak blog panduan WordPress besar [1], [2], juga tidak berfungsi ketika kami mencoba nya.
Tapi tentu saja, kami punya solusinya disini. Kalau tidak, untuk apa kami menuliskan artikel ini.
Berikut adalah beberapa cara untuk menduplikat komentar di WordPress. Baik itu memakai plugin alternatif, atau memakai script PHP.
Plugin WordPress Comments Import & Export
Ini adalah plugin alternatif yang bisa Anda pakai untuk menduplikat komentar. Meskipun terkesan tidak secara langsung menyelesaikan masalah, namun hanya plugin ini saja -dan dengan bantuan tambahan dari plugin lain- yang bisa menjadi pilihan Anda.
Dan Anda mungkin bertanya “Saya ingin menduplikat komentar. Mengapa memberi referensi plugin untuk mengekspor dan mengimpor komentar”. Ya, karena plugin ini bisa digunakan untuk melakukan nya juga -jika Anda tahu caranya.
Cara Kerja
Sebelum ke bagian cara penggunaan, lebih baik baca sebentar mengenai bagaimana cara plugin export-import ini bisa menduplikat komentar.
Plugin ini akan bekerja untuk mengeksport komentar. Kemudian, untuk membuat duplikat komentar, Anda perlu menghapus terlebih dahulu komentar yang ada di postingan sebelumnya.
Kemudian, Anda perlu mengimport komentar sebelumnya kembali ke postingan tersebut. Lalu, melakukan restore atas komentar yang dihapus. Jika tidak melakukan nya, komentar tidak bisa di import dengan alasan “Comment already exsist”.
Baik. Garis besarnya seperti itu. Mari kita menuju panduan cara melakukan nya.
Panduan Menduplikat Komentar WordPress dengan Plugin Export- Import
Install dan aktifkan plugin
Ada beberapa plugin yang mirip, apabila Anda mencarinya dari menu “add plugin”. Pastikan Anda memilih plugin Comments Import & Export yang dibuat oleh WebToffee.
Menemukan komentar yang ingin di duplikat
Setelah itu, temukan semua komentar dalam postingan yang ingin di duplikat ini.
Sebagai contoh, anggap saja saya ingin menduplikat komentar dari postingan saya yang berjudul “Lorem Ipsum” ini. Saya kemudian perlu menemukan semua komentar di dalam postingan ini. Tindakan ini bisa dilakukan dengan mengeklik jumlah komentar yang ada di daftar postingan tersebut.
Download data komentar sebagai CSV
Setelah mendapatkan semua komentar nya, kemudian centang semua komentar tersebut, lalu pilih “Download as CSV” yang ada pada kolom “Bulk Action”.
Klik tombol “Apply” untuk mengeksekusi nya.
Menghapus komentar lama
Selanjutnya, hapus semua komentar tersebut. Ya, Anda tidak salah baca. Anda harus menghapusnya. Jika tidak, proses import yang akan kita lakukan nanti, tidak akan berhasil karena komentar yang lama dianggap masih ada.
Tidak perlu khawatir. Setelah kita menghapusnya, kita bisa me-restore nya kembali dari menu “Trash”.
Lakukan import komentar
- Masuk ke menu: Comments –> Comments Im-Ex.
- Klik tombol “Import Comments”.
- Pilih file nya.
- Lalu tekan tombol “Upload file and import”.
Atau, ikuti saja instruksi yang tertampil. Ini tindakan yang mudah.
Apabila berhasil, maka pesan yang muncul adalah “Import Successful”.
Restore komentar
Selanjutnya adalah mengembalikan komentar yang telah di hapus sebelumnya.
- Pilih “Trash” pada menu Comments.
- Centang komentar yang ingin dikembalikan.
- Kemudian klik “Apply”.
Selesai
Dalam uji coba yang kami lakukan ini, bisa Anda lihat kalau jumlah komentar di halaman “Lorem Ipsum” yang ada di website kami, berubah menjadi 10. Sebelumnya adalah 5.
Memindahkan Komentar
Ini adalah opsi tambahan. Cara menduplikat komentar yang kami berikan diatas, hanya bisa menduplikat komentar pada postingan yang sama. Jadi, Anda tidak bisa langsung menduplikatnya ke postingan lain.
Namun, solusi nya mudah. Setelah Anda berhasil menduplikatnya, gunakan plugin lain untuk memindahkan komentar tersebut ke postingan lain yang Anda kehendaki.
Disini, kami tidak akan menjelaskan cara melakukan nya. Karena, langkah ini mungkin tidak Anda butuhkan. Namun, jika Anda ingin sekalian memindahkan komentar yang sudah di duplikat tersebut, lihat panduan melakukan nya di halaman ini: 5 Cara Memindahkan Komentar WordPress
Memakai Script untuk Menduplikat Komentar di WordPress
Sebagian orang seringnya alergi, jika membahas menggunakan script daripada plugin. Apalagi sampai perlu mengedit kode script tersebut untuk bisa menggunakan nya.
Namun, sekali lagi, tidak ada plugin WordPress yang bisa Anda pakai secara langsung untuk menduplikat komentar. Oleh karena itu, kami menyediakan pilihan script ini untuk Anda pakai.
Script yang kami buatkan ini adalah jenis PHP. Cukup masukan saja script ini ke dalam menu function.php
atau memakai WP Code, untuk menjalankan nya.
Dan juga, Anda perlu mengedit sedikit kode ID Post, sebelum memakai nya.
Adapun kami menyediakan 2 jenis script disini, dengan fungsi yang agak berbeda. Berikut adalah script nya.
Script untuk Menduplikat Komentar- Versi A
function copy_comments() { $old_post_id = 3574; $new_post_id = 6870; // Ambil semua komentar dari post lama $comments = get_comments(array( 'post_id' => $old_post_id, 'order' => 'ASC', 'orderby' => 'comment_date_gmt' )); $old_new_parent_id_relation = array(); // Jika ada komentar if (!empty($comments)) { // Loop melalui setiap komentar foreach($comments as $comment) { // Buat array data komentar baru $new_comment_data = array( 'comment_post_ID' => $new_post_id, 'comment_author' => $comment->comment_author, 'comment_author_email' => $comment->comment_author_email, 'comment_author_url' => $comment->comment_author_url, 'comment_content' => $comment->comment_content, 'comment_type' => $comment->comment_type, 'comment_parent' => ($comment->comment_parent && isset($old_new_parent_id_relation[$comment->comment_parent])) ? $old_new_parent_id_relation[$comment->comment_parent] : 0, 'user_id' => $comment->user_id, 'comment_author_IP' => $comment->comment_author_IP, 'comment_agent' => $comment->comment_agent, 'comment_date' => $comment->comment_date, 'comment_approved' => $comment->comment_approved, ); // Masukkan komentar baru dan simpan ID komentar baru $new_comment_id = wp_insert_comment($new_comment_data); $old_new_parent_id_relation[$comment->comment_ID] = $new_comment_id; } } } add_action('init', 'copy_comments'); ?>
Penjelasan “Script Versi A”
Script diatas, digunakan untuk menyalin semua komentar, tiap kali terjadi loading pada situs.
Kelemahan script “Versi A” ini adalah, kadang jumlah komentar yang di duplikat bisa mencapai 4-10 X lipat. Jadi, misalkan Anda menjalankan script ini untuk menduplikat komentar di sebuah post lama yang berisi 10 komentar, jumlah komentar yang disalin ke post baru mungkin bisa menjadi 40- 100 komentar.
Alasan komentar bisa terduplikat sangat banyak
Hal ini disebabkan, script ini akan aktif ketika terjadi “load” di website Anda. Maksudnya, jika Anda melakukan refresh website Anda dari front end (bagian depan situs), script ini akan bekerja menduplikat komentar.
Masalahnya, jika ada pengunjung yang melakukan load di situs, script ini juga akan berjalan pula. Oleh sebab itu, jumlah komentar yang di duplikat bisa menjadi sangat banyak.
Solusi
Solusinya hanya satu. Setelah Anda memakainya, kemudian langsung jangan gunakan lagi.
Setelah Anda memasukan script ini ke dalam menu function.php
, kemudian merefresh satu kali situs Anda melalui front end, setelah itu hapus langsung script ini. Secepatnya.
Script untuk Menduplikat Komentar- Versi B
Sedangkan script “Versi B” ini, adalah modifikasi dari script sebelumnya. Namun, masih memiliki kelemahan juga. Script “Versi B” ini dibuat untuk menghindari duplikasi dengan menambahkan suatu pengecekan apakah komentar sudah pernah disalin atau belum.
function copy_comments() { $old_post_id = 3574; $new_post_id = 6870; // Ambil semua komentar dari post lama $comments = get_comments(array( 'post_id' => $old_post_id, 'order' => 'ASC', 'orderby' => 'comment_date_gmt' )); $old_new_parent_id_relation = array(); // Ambil semua komentar dari post baru $new_comments = get_comments(array( 'post_id' => $new_post_id )); // Cek jika komentar sudah disalin if (count($comments) === count($new_comments)) { return; } // Jika ada komentar if (!empty($comments)) { // Loop melalui setiap komentar foreach($comments as $comment) { // Buat array data komentar baru $new_comment_data = array( 'comment_post_ID' => $new_post_id, 'comment_author' => $comment->comment_author, 'comment_author_email' => $comment->comment_author_email, 'comment_author_url' => $comment->comment_author_url, 'comment_content' => $comment->comment_content, 'comment_type' => $comment->comment_type, 'comment_parent' => ($comment->comment_parent && isset($old_new_parent_id_relation[$comment->comment_parent])) ? $old_new_parent_id_relation[$comment->comment_parent] : 0, 'user_id' => $comment->user_id, 'comment_author_IP' => $comment->comment_author_IP, 'comment_agent' => $comment->comment_agent, 'comment_date' => $comment->comment_date, 'comment_approved' => $comment->comment_approved, ); // Masukkan komentar baru dan simpan ID komentar baru $new_comment_id = wp_insert_comment($new_comment_data); $old_new_parent_id_relation[$comment->comment_ID] = $new_comment_id; } } } add_action('init', 'copy_comments'); ?>
Perhatikan bahwa kode ini akan berhenti jika jumlah komentar pada post lama dan post baru sudah sama.
Meskipun ini bukanlah pengecekan yang sempurna (karena ada kemungkinan komentar baru ditambahkan ke post lama atau post baru), ini harus cukup baik untuk kasus Anda kecuali jika Anda berharap komentar baru ditambahkan ke post lama atau post baru selama proses penyalinan berlangsung.
Script untuk Menduplikat Komentar- Versi C
function duplicate_comments_from_specific_page() {
$page_id = 330; // ID halaman yang komentar akan diduplikat
$max_comments = 8; // Maksimal jumlah komentar utama yang diduplikat
$comments = get_comments(array(
'post_id' => $page_id,
'number' => $max_comments,
'status' => 'approve', // Opsional, hanya ambil komentar yang disetujui
'parent' => 0 // Hanya ambil komentar utama
));
if ($comments) {
foreach ($comments as $comment) {
// Membuat salinan komentar utama
$dup_comment = clone $comment;
unset($dup_comment->comment_ID); // Menghapus ID untuk membuat komentar baru
// Menambahkan komentar utama baru dan mendapatkan ID-nya
$new_comment_id = wp_insert_comment((array) $dup_comment);
// Menduplikasi balasan komentar
$child_comments = get_comments(array('parent' => $comment->comment_ID));
foreach ($child_comments as $child) {
$dup_child = clone $child;
unset($dup_child->comment_ID); // Menghapus ID untuk membuat komentar baru
$dup_child->comment_parent = $new_comment_id; // Set parent ke komentar utama yang baru
// Menambahkan balasan komentar baru
wp_insert_comment((array) $dup_child);
}
}
}
}
// Panggil fungsi ini untuk melakukan duplikasi
duplicate_comments_from_specific_page();
Script Versi C ini dirancang untuk menduplikat komentar dengan jumlah tertentu yang dapat kita tentukan. Misalnya, jika kita menetapkan angka 8 dalam script, maka setiap kali script dijalankan, ia akan menduplikat 8 komentar. Namun, ada satu kelemahan: jika script ini dijalankan berulang kali tanpa pembatasan, jumlah komentar yang diduplikat akan terus bertambah secara tidak terbatas, yaitu menjadi 8, kemudian 16, 32, dan seterusnya.
Sebagai solusi, disarankan menggunakan plugin WPCode. Dengan plugin ini, Anda dapat mengatur script untuk hanya diaktifkan pada halaman tertentu. Dengan demikian, script hanya akan dijalankan ketika halaman spesifik tersebut di-refresh, menghindari duplikasi berlebihan komentar pada seluruh situs. Ini memastikan bahwa script hanya beroperasi dalam konteks yang Anda inginkan, menjaga kontrol atas jumlah duplikasi komentar.
Cara Menggunakan Script Duplikat Komentar
- Salin script tersebut ke Notepad.
- Temukan ID postingan yang berisi komentar yang ingin Anda duplikat. Setelah itu, ubah bagian
$old_post_id =
dengan ID Postingan tersebut. - Selanjutnya, masih sama seputar menemukan ID Postingan. Namun, ini adalah ID Postingan tujuan duplikat komentar ini. Cari dan temukan ID postingan dari halaman atau post yang ingin Anda jadikan tujuan duplikat komentar ini. Kemudian, ubah bagian
$new_post_id =
dengan ID postingan tujuan tersebut. - Setelah memodifikasinya sedikit, masukan script ini ke
function.php
, atau memakai WP Code. - Refresh situs Anda sekali saja dari bagian depan. Kemudian, lihat hasil nya.
Penutup
Demikianlah tutorial mengenai cara menduplikat komentar di WordPress. Semoga dengan pengetahuan ini, Anda dapat lebih fleksibel dalam mengelola interaksi pengguna pada situs WordPress Anda.
Ingatlah, duplikasi komentar bisa menjadi alat yang kuat untuk menyusun ulang diskusi atau membawa percakapan penting ke pos yang lebih baru. Namun, gunakanlah dengan bijak untuk menjaga integritas dan kualitas diskusi di situs Anda.
Terima kasih sudah membaca, dan selamat mencoba!