Kustomisasi Komentar di WordPress - Fungsionalitas dan Penampilan
Indonesian (Bahasa Indonesia) translation by Ari Ana (you can also view the original English article)
Di WordPress ada berbagai jenis konten seperti posting, halaman dan komentar dll. Ini membentuk dasar-dasar WordPress. WordPress menjadi platform yang sangat dapat disesuaikan memungkinkan Anda menyesuaikan jenis yang sangat dasar sampai sebagian besar yang sesuai dengan situs Anda. Satu dapat mengubah tampilan serta fungsionalitas dari jenis dasar untuk membuat mereka berperilaku dan terlihat sesuai tampilan dan fungsi situs Anda. Dalam artikel ini kita akan melihat bagaimana kita dapat mengubah perilaku dan tampilan komentar di situs WordPress kita.
Langkah 1 Memahami Fungsi comment_form
dan Argumennya
Mari kita lihat fungsi WordPress comment_form
. Ini bertanggung jawab untuk menampilkan formulir komentar yang sebagian besar ditampilkan pada halaman tunggal atau posting di WordPress. Panggilan ke fungsi ini sebagian besar akan terlihat di file comments.php dari folder tema Anda. Maka file ini akan dimasukkan di berbagai tempat seperti single.php, page.php, dll secara langsung atau dengan memanggil fungsi comments_template
.
Anda dapat menemukan rincian lebih lanjut tentang comments_template
di Codex WordPress.
Jika kita menggunakan fungsi comment_form
untuk menampilkan formulir, formulirnya akan ditampilkan menggunakan parameter default yang akan berupa bidang seperti nama, email (keduanya wajib), situs web dan konten komentar. Pada tema standar Twenty Eleven, formulir akan terlihat sebagai berikut.



Beberapa argumen penting untuk fungsi comment_form
adalah:
-
fields
- Dengan mana Anda benar-benar dapat mengontrol bidang mana yang ditampilkan di formulir komentar. -
comment_notes_before
dancomment_notes_after
- Ini digunakan untuk menampilkan beberapa catatan sebelum atau sesudah formulir komentar. -
title_reply
- Menggunakan ini Anda dapat mengubah judul balasan yang secara default adalah 'Leave a Reply'. -
label_submit
- Ini dapat digunakan untuk mengubah teks di atas tombol kirim komentar.
Langkah 2 Mengkustomisasi Formulir Komentar Anda Menggunakan Fungsi comment_form
Sekarang mari kita ubah formulir komentar kita dengan mengirimkan argumen yang berbeda ke comment_form
.
Dalam hal kita ingin menyesuaikan bidang formulir komentar, kita dapat meneruskan bidang-bidangnya ke fungsi comment_form
. Bidang-bidang default dalam fungsi comment_form
adalah sebagai berikut:
1 |
$fields = array( |
2 |
'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . |
3 |
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>', |
4 |
'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . |
5 |
'<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>', |
6 |
'url' => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' . |
7 |
'<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>', |
8 |
);
|
Jadi jika kita ingin menghapus bidang situs web maka kita perlu membuat bidang tanpa bidang situs web sebagai berikut dan mengirimkannya ke comment_form
.
1 |
$commenter = wp_get_current_commenter(); |
2 |
$req = get_option( 'require_name_email' ); |
3 |
$aria_req = ( $req ? " aria-required='true'" : '' ); |
4 |
$fields = array( |
5 |
'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . |
6 |
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>', |
7 |
'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . |
8 |
'<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>', |
9 |
);
|
10 |
|
11 |
$comments_args = array( |
12 |
'fields' => $fields |
13 |
);
|
14 |
|
15 |
comment_form($comments_args); |
Sekarang jika kita pergi dan melihat bentuk komentarnya akan muncul sebagai berikut:



Selain ini, mari sekarang mengubah judul balasan menjadi 'Please give us your valuable comment' dan juga ubah judul tombol posting komentar menjadi 'Send My Comment'.
Berikut ini adalah argumen yang akan kita berikan kepada comment_form
untuk mencapai ini:
1 |
$commenter = wp_get_current_commenter(); |
2 |
$req = get_option( 'require_name_email' ); |
3 |
$aria_req = ( $req ? " aria-required='true'" : '' ); |
4 |
$fields = array( |
5 |
'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . |
6 |
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>', |
7 |
'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . |
8 |
'<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>', |
9 |
);
|
10 |
|
11 |
$comments_args = array( |
12 |
'fields' => $fields, |
13 |
'title_reply'=>'Please give us your valuable comment', |
14 |
'label_submit' => 'Send My Comment' |
15 |
);
|
16 |
|
17 |
comment_form($comments_args); |
Sekarang jika kita melihat formulir komentar itu akan terlihat sebagai berikut:



Langkah 3 Menghapus Bidang dari Komentar untuk Menggunakan Hooks
Formulir komentar WordPress dapat dikustomisasi juga menggunakan kaitan dan filter. Menyesuaikan menggunakan kaitan/filter sangat berguna terutama ketika Anda menyesuaikan melalui plugin dan tidak dapat memodifikasi file tema. Filter untuk menambah atau menghapus bidang dari formulir komentar adalah 'comment_form_default_fields
'
Sekarang mari kita hapus bidang URL menggunakan filter ini. Kode untuk melakukan ini Anda dapat memasukkannya ke dalam file plugin Anda jika Anda menyesuaikan melalui plugin atau di file functions.php dari tema Anda.
Kodenya adalah sebagai berikut:
1 |
function remove_comment_fields($fields) { |
2 |
unset($fields['url']); |
3 |
return $fields; |
4 |
}
|
5 |
add_filter('comment_form_default_fields','remove_comment_fields'); |
Dalam hal ini kita menambahkan fungsi remove_comment_fields
pada filter 'comment_form_default_fields
' dan kemudian unset bidang url
untuk menghapus bidang situs web.
Langkah 4 Menambahkan Lebih Banyak Data ke Komentar Anda Menggunakan Hooks
Kita bahkan dapat menambahkan kolom ke komentar untuk menggunakan filter 'comment_form_default_fields
'. Sekarang mari tambahkan bidang usia penulis komentar menggunakan filter ini dan kemudian simpan bidang ini sebagai meta komentar dan menampilkannya di komentar.
Kita dapat menambahkan bidang sebagai berikut:
1 |
function add_comment_fields($fields) { |
2 |
|
3 |
$fields['age'] = '<p class="comment-form-age"><label for="age">' . __( 'Age' ) . '</label>' . |
4 |
'<input id="age" name="age" type="text" size="30" /></p>'; |
5 |
return $fields; |
6 |
|
7 |
}
|
8 |
add_filter('comment_form_default_fields','add_comment_fields'); |
Setelah kita menambahkan bidang tergantung pada tema, kita mungkin ingin memberinya gaya. Karena saya menggunakan tema Twenty Eleven, saya menata dengan menambahkan label #respond .comment-form-age
dengan gaya label lain seperti label #respond .comment-form-url
, dll. sebagai berikut:
1 |
#respond .comment-form-author label, |
2 |
#respond .comment-form-email label, |
3 |
#respond .comment-form-url label, |
4 |
#respond .comment-form-age label, |
5 |
#respond .comment-form-comment label { |
6 |
background: #eee; |
7 |
-webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); |
8 |
-moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); |
9 |
box-shadow: 1px 2px 2px rgba(204,204,204,0.8); |
10 |
color: #555; |
11 |
display: inline-block; |
12 |
font-size: 13px; |
13 |
left: 4px; |
14 |
min-width: 60px; |
15 |
padding: 4px 10px; |
16 |
position: relative; |
17 |
top: 40px; |
18 |
z-index: 1; |
19 |
}
|
Sekarang jika kita melihat formulir komentar, bidang usia akan terlihat sebagai berikut:



Sekarang usia disimpan sebagai meta komentar yang perlu kita kaitkan ke 'comment_post
' dan menyimpan usia sebagai meta komentar sebagai berikut:
1 |
function add_comment_meta_values($comment_id) { |
2 |
|
3 |
if(isset($_POST['age'])) { |
4 |
$age = wp_filter_nohtml_kses($_POST['age']); |
5 |
add_comment_meta($comment_id, 'age', $age, false); |
6 |
}
|
7 |
|
8 |
}
|
9 |
add_action ('comment_post', 'add_comment_meta_values', 1); |
Setelah meta disimpan, itu dapat ditampilkan pada komentar sebagai berikut:
1 |
<?php echo "Comment authors age: ".get_comment_meta( $comment->comment_ID, 'age', true ); ?> |



Langkah 5 Kustomisasi Komentar untuk Beberapa Jenis Posting Tertentu
Terkadang berguna untuk memiliki beberapa kolom komentar hanya untuk jenis posting tertentu. Sekarang mari kita membuat perubahan kode untuk menampilkan bidang komentar usia hanya jika itu adalah jenis posting kustom, seperti misalnya, book.
Kode untuk memiliki usia hanya untuk jenis posting buku kustom adalah:
1 |
function add_comment_fields($fields) { |
2 |
|
3 |
if( is_singular( 'books' ) ) { |
4 |
|
5 |
$fields['age'] = '<p class="comment-form-age"><label for="age">' . __( 'Age' ) . '</label>' . |
6 |
'<input id="age" name="age" type="text" size="30" /></p>'; |
7 |
}
|
8 |
return $fields; |
9 |
|
10 |
}
|
11 |
add_filter('comment_form_default_fields','add_comment_fields'); |
Jadi di sini Anda menambahkan bidang hanya jika bertipe 'Books'.
Langkah 6 Membuat Callback untuk Menampilkan Komentar
Fungsi wp_list_comments
digunakan untuk menampilkan komentar pada sebuah posting. Anda dapat membaca tentang wp_list_comments
di Codex WordPress.
wp_list_comments
memiliki argumen 'callback
' di mana Anda dapat menentukan fungsi yang dipanggil kembali untuk menampilkan komentar.
Dalam tema Twenty Eleven di comments.php Anda akan melihat sebuah baris:
1 |
wp_list_comments( array( 'callback' => 'twentyeleven_comment' ) ); |
Ini akan kita ubah menjadi:
1 |
wp_list_comments( array( 'callback' => 'my_comments_callback' ) ); |
Jadi fungsi my_comments_callback
akan dipanggil untuk setiap posting.
Langkah 7 Menata Komentar Anda
Sekarang kita akan mengubah gaya posting kita sedikit berbeda. Kita hanya ingin menampilkan konten posting dan bidang usia yang telah kita tambahkan secara khusus. Kita mengubah warna latar belakang dari komentar juga.
Kode untuk fungsi 'my_comments_callback
' adalah sebagai berikut:
1 |
function my_comments_callback( $comment, $args, $depth ) { |
2 |
$GLOBALS['comment'] = $comment; |
3 |
|
4 |
?>
|
5 |
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> |
6 |
<article id="comment-<?php comment_ID(); ?>" class="comment"> |
7 |
|
8 |
<div class="comment-content"><?php comment_text(); ?></div> |
9 |
|
10 |
<p><?php echo "Comment authors age: ".get_comment_meta( $comment->comment_ID, 'age', true ); ?></p> |
11 |
|
12 |
<div class="reply"> |
13 |
<?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply <span>↓</span>', 'twentyeleven' ), 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?> |
14 |
</div>
|
15 |
</article>
|
16 |
</li>
|
17 |
<?php
|
18 |
}
|
Kita juga mengubah warna latar belakang sebagai berikut:
1 |
.commentlist > li.comment { |
2 |
|
3 |
background: #99ccff; |
4 |
border: 3px solid #ddd; |
5 |
-moz-border-radius: 3px; |
6 |
border-radius: 3px; |
7 |
margin: 0 0 1.625em; |
8 |
padding: 1.625em; |
9 |
position: relative; |
10 |
}
|
Sekarang jika kita melihat komentar mereka akan terlihat sebagai berikut:



Kesimpulan
Komentar memainkan peran penting saat membangun situs komunitas. Bergantung pada situs, fungsi komentar juga dapat disesuaikan dengan tepat. WordPress menyediakan sistem komentar yang fleksibel dan memberikan dukungan yang baik melalui fungsi-fungsi untuk mengubah perilaku dan tampilan komentar situs Anda. Jadi bersenang-senanglah menyesuaikan situs WordPress Anda!
Beri tahu kami di komentar di bawah jika Anda memiliki saran lain tentang cara menyesuaikan komentar di situs WordPress Anda.