Membuat Recent Comment Avatar Tanpa Plugin

Written By Rey on Selasa, 17 April 2012 | 02.22

Kali ini saya ingin berbagi cara untuk memasang Recent Coments dengan avatar. Atau menampilkan komentar terakhir di sidebar. Pada beberapa tema mungkin sudah ada fungsi tersebut. Jika Anda ingin menampilkan komentar terkini yang dilengkapi avatar namun kebetulan menggunakan tema yang tidak dilengkapi pengaturan untuk menampilkan komentar terbaru dengan avatar, saya berikan cara menambahkannya tanpa menggunakan plugin. Khususnya cara ini untuk WordPress.

Baiklah Sobat, untuk menambahkannya silakan Anda buka Appearance Editor melalui Dashboard WordPress Anda. Kemudian tambahkan baris kode berikut pada functions.php yang berada dalam direktori tema Anda saat ini. Setelah itu lanjutkan dengan langkah berikutnya, silakan lanjutkan dulu membaca.

////////////////////////////////////////////////////////////////////////////////
// Get Recent Comments With Avatar
////////////////////////////////////////////////////////////////////////////////
function get_avatar_recent_comment() {

global $wpdb;

$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_author_email, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,50) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER 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 = ''
ORDER BY comment_date_gmt DESC LIMIT 5";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$gravatar_status = 'on'; /* off if not using */

foreach ($comments as $comment) {
$email = $comment->comment_author_email;
$grav_name = $comment->comment_author;
$grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5($email). "&size=30"; ?>
<?php if($gravatar_status == 'on') { ?>
<li>
<img src="<?php echo $grav_url; ?>" alt="<?php echo $grav_name; ?>" class="alignleft" /><?php } ?>
<span class="author"><?php echo strip_tags($comment->comment_author); ?></span>&nbsp;Says:<br />
<span class="comment"><a href="<?php echo get_permalink($comment->ID); ?>#comment-<?php echo $comment->comment_ID; ?>" title="on <?php echo $comment->post_title; ?>">
<?php echo strip_tags($comment->com_excerpt); ?>...</a></span>
<div class="clearfix"></div>
</li>
<?php
}
}

 

Kode tersebut untuk membuat fungsi baru dalam membuat daftar recent comments. Untuk jumlah yang ingin ditampilkan, silakan ganti angka 5 pada DESC LIMIT.  Dan untuk Admin tidak akan ditampilkan, namun jika Anda menghendaki komentar Admin ikut ditampilkan, maka hapus  kode AND user_ID ''. Kode itu untuk memfilter agar Admin tidak diikutsertakan dalam recent comments.  Atau mungkin mengikutkan user yang bukan Super Admin, maksudnya user terdaftar namun bukan Administrator, misalnya ada beberapa user di Blog Anda, maka pada AND user_ID '' dapat Anda tambahkan menjadi AND user_ID '>1'. Maksudnya user dengan ID=1 yang bisanya Administrator utama akan difilter, sedangkan user lainnya ikut ditampilkan. Lalu untuk menentukan ukuran avatar, Anda dapat merubah pada kode size=30.

Setelah functions.php disave, tidak begitu saja muncul. Tambahkan lagi widget yang nantinya bisa dimasukkan pada menu widget. Jadi untuk menampilkan atau tidak, nantinya hanya melalui pengaturan widget. Untuk membuat widgetnya, tetap di functions.php tambahkan kode berikut.

////////////////////////////////////////////////////////////////////////////////
// Custom Recent Comments With Gravatar Widget
////////////////////////////////////////////////////////////////////////////////

function widget_mytheme_myrecentcoms() { ?>
<div id="recent_comments_gravatar" class="widget widget_recentcomments_gravatar">
<h4><?php _e('Recent Comments'); ?></h4>
<?php get_avatar_recent_comment(); ?>
</div>
<?php }

if ( function_exists('register_sidebar_widget') ) register_sidebar_widget(__('Recent Comments(Gravatar)'), 'widget_mytheme_myrecentcoms');

 

Setelah selesai menyimpan perubahan atau penambahan kode-kode di atas pada functions.php, Anda dapat membuka Appearance, Widgets. Disana akan Anda temukan Widget baru dengan nama Recent Comments(Gravatar) yang bisa Anda tambahkan ke sidebar. Untuk mengaktifkan atau menonaktifkan cukup dari widget tersebut. Kemudian untuk menyelaraskan dengan tampilan tema Anda, silakan lihat selector css untuk sidebar Anda, karena kemungkinan setiap tema berbeda. Untuk menyamakan Anda bisa merubah atribut-atribut dari kode di atas misalnya kode untuk h4, div, span, li, dan sebagainya, sesuaikan strukturnya dengan Widget yang lain. Selanjutnya Anda juga dapat mempercantik melalui style.css sesuai selector widget tadi. Baiklah Sobat, selamat berkreasi dengan widget baru Anda, Salam...

11 komentar:

Alang Fauzi Bertuah mengatakan...

Alhamdulillah.....

Saya yang pertama berkomentar di artikel ini :)

Sangat bagus sekali Recent Comment Dengan Avatar dan tanpa plugin ini, ternyata milik Kita hampir sama ya Mas Reyza :)

Reyzha mengatakan...

Wah bang Fauzi Pertamax... :) Saya mengambil dari tema saya, maklum, koleksi tema saya banyak, tapi belum ada yang benar-benar terasa cocok, jadi saya suka gabung-gabungkan fungsinya :) dan pagespeed saya saat ini belum optimal lagi Mas, gara-gara gonta-ganti tema akhir-akhir ini.

Alang Fauzi Bertuah mengatakan...

Saya paling suka dengan tema-tema dari Gazpo dan yang paling lama Saya pakai itu Gazpomag, fiturnya banyak tetapi sederhana dan mudah dimodifikasi.

Kalau menurut Saya sih, tema terbaik itu Thesis karena perpaduan antara SEO dan Speed-nya sangat baik :)

Kalau koleksi tema Mas Reyzha banyak, boleh lah kapan-kapan Kita share :)

Reyzha mengatakan...

Haha, tapi ya itu Mas, tema gratisan semua. Kemarin dapat satu paket dari themejunkies, isinya banyak bagus-bagus lho.

amdhas mengatakan...

Ada beberapa pertanyaan dari saya..
1. fungsi dari class="clearfix"

Karena ga setiap theme punya fungsi ini, seperti clear dan clerfix itu di tambah dalam css, klo bisa di tambahin cssnya untuk fungsi tersebut.
Biasanya itu untuk membersihkan grid,,

2. Function exis itu sebenarnya ga usah dalam php...
if ( function_exists('register_sidebar_widget')

Karena untuk saat ini itu bukan standart wp lagi..
sedikitnya jarus ada array;;;JANGAN LUPA THEME _SLUG

function inithemeslug_widgets_init()
register_sidebar(array(


Coba kasih penjelasan dari dua masalah tersebut...

Yos Beda mengatakan...

mo pasnag recent comment juga namaun apa daya sidebar blog saya spertinya udah terlihat penuh, ngga jadi deh, hehehe

Reyzha mengatakan...

hehe, kalau terlalu penuh nambah berat juga kayanya Mas. Salamk Kenal... :)

Reyzha mengatakan...

Waduh terimakasih sekali sudah diingatkan. Untuk clearfix terusterang memang kelupaan karena kode tersebut berada di theme yang tidak sedang saya gunakan. Kemudian yang poin ke-dua. Mungkin saya memberikan alternatif yang sederhana saja. Jika itu bukan standard WP ya memang namanya Custom... CMIIW. Terimakasih tanggapan yang luar biasa Mas Amdhas :).

amdhas mengatakan...

Untuk semua cms seperti drupal, wp, textpattern untuk mengatasi clearing float biasanya dikasih style saja agar semua bisa suport, klo class kan klo yang ga ada malah kesamping kiri.

<div style="clear:both"></div>

Nah itulah sebabnya default themes bawaan core pasti tambahin ini seperti twenty eleven, biar clear..klo clearfix kan harus nambahin lagi classnya di css.

Reyzha mengatakan...

Ooo begitu ya Mas, Saya benar-benar berterimakasih banyak dengan informasi ini, pengetahuan tambahan untuk saya. Kebetulan saya ingin sekali belajar css. :)

patnerbiz mengatakan...

Mas kalo buat recent post pake thumbnail gimana ya. soalnya abis mter" gak ktemu.
Ktemunya cuman yang hard coding, jadi kita gak bsa edit lewat widget seperti tutor yang anda posting ini .. kalo ada di kasih tau ya mas ;)

Posting Komentar

Tahukah anda, berkomentar menggunakan nama dan url bisa meningkatkan kunjungan balik ke Blog anda? Gunakan form komentar dengan bijak. Tingkatkan Backlink secara efektif hanya dengan meninggalkan komentar menggunakan Name/URL.