February 29th, 2008

Comment ListSaya masih saja agak kesulitan untuk menulis tutorial baru tentang membuat wordpress theme. Dikarenakan banyak hal yang terkait satu sama lain. Jadi mungkin akan lebih baik daripada tidak sama sekali, saya mencoba menulis tutorial yang masih berhubungan dengan wordpress, tapi hanya sebagian saja. Dan kali ini tentang bagaimana kita memanipulasi daftar komentar, dengan memberikannya sedikit CSS agar terlihat lebih berwarna dan tentu saja menarik.

Hasil dari tutorial ini adalah membuat kotak komentar menjadi warna strip. Bahasa gampangnya, punya warna berbeda di nomor ganjil dan genapnya. Selain itu, saya juga membahas bagaimana membuat komentar dari sang author atau sang empunya blog berbeda sendiri dari warna-warna lain seperti di blog ini.

Comments.php

Daftar-daftar komentar dan form komentar biasanya berada di file comments.php di theme wordpress yang sedang digunakan. Saya harapkan jangan berbuat hal yang macam-macam jika anda tidak tahu apa yang sedang anda lakukan. Seperti komentar di bagian bawah file comments.php, if you delete this the sky will fall on your head. Hehehe…

Buka comments.php di editor kesayangan anda. Jangan tanya saya editornya. Yang terpenting adalah, anda bisa mengubahnya. Mau pakai software apa saja, itu tergantung kesukaan.

Setelah membukanya, carilah kode di bawah ini

[source:php]foreach ($comments as $comment) :[/source]

Kode diatas bermaksud mencoba membaca semua komentar yang ada dengan menggunakan teknik iterasi (perulangan). Jadi proses yang berada di dalam kode tersebut, dieksekusi secara terus menerus sampai dengan komentar untuk post yang bersangkutan habis.

Membuat warna strip

Untuk membuat warna strip di blok komentar, anda membutuhkan sebuah variabel penunjuk status. Kita bisa membuat variabel sendiri bernama katakanlah, j. Jadi, ubah kode foreach di atas menjadi seperti ini kira-kira.

[source:php]<?php
$j=0;
foreach ($comments as $comment) :
?>[/source]

Artinya, kita mulai membuat sebuah variabel bernama j dan langsung memberikannya sebuah nilai 0.

Lalu tambahkan kode ini persis di bawah baris foreach:

[source:php]if($j%2==0) $class=”comment-1″;
else $class=”comment-2″;
$j++;[/source]

Artinya, jika nilai j habis dibagi dengan angka 2 (artinya nilai adalah genap) maka kita membuat sebuah variabel $class yang berisi “comment-1″. Selain itu (artinya nilai adalah ganjil) maka variabel $class kita isi dengan “comment-2″. Setelah itu, nilai $j ditambahkan satu.

Dengan kode di atas, maka kita membuat 2 buah blok komentar dengan masing-masingnya punya keunikan tersendiri dari nama class.

Kemudian ubah blok komentar anda dengan melakukan penambahan class seperti di bawah ini:

<div class="comments <?php echo $class ?>" id="comment-<?php comment_ID();?>">

Situasi blok komentar mungkin bisa saja berbeda, tapi yang jelas, biasanya ada di semua theme wordpress. Diperhatikan saja pola-nya. Pada prinsipnya, hanya untuk menambahkan sebuah class unik di setiap blok ganjil dan genap.

Dan sudah, halas, bas, finish. Itu saja. Gampang? oh iyaaa…

Membuat style sendiri untuk admin blog

Tidak jauh berbeda dengan bagian atas, untuk bagian ini hanya perlu membutuhkan kondisi saja. Konsepnya, anda cuma butuh mencocokkan email yang anda gunakan untuk verifikasi sebagai admin.

Langkah pertama, buat dulu sebuah variabel tepat di bawah variabel $j yang sudah kita tulis di bagian atas. Lengkapnya jadi begini.

[source:php]<?php
$j=0;
$author_class = “”;
foreach ($comments as $comment) :
?>[/source]

Kemudian, tinggal menaruh kondisi tepat di bawah kondisi nilai genap dan ganjil yang sudah kita buat di atas. Lengkapnya jadi begini:

[source:php]if($j%2==0) $class=”comment-1″;
else $class=”comment-2″;
$j++;
if($comment->comment_author_email == “didats@dimanasaja.com”) $author_class = “byauthor”;[/source]

Nah, langkah terakhir tinggal bagaimana kita menaruh variabel $author_class di bagian blok komentar. Tinggal edit saja bagian atas menjadi seperti ini:

[source:php]<div class=”comments <?php echo $class.” “.$author_class ?> ” id=”comment-<?php comment_ID();?>”>[/source]

Lengkapnya, jadi seperti ini:

[source:php]<?php
$x=0;
$author_class = “”;
foreach ($comments as $comment) :
if($j%2==0) $class=”comment-1″;
else $class=”comment-2″;
$j++;

if($comment->comment_author_email == “didats@dimanasaja.com”) $author_class = “byauthor”;
?>
<div class=”comments <?php echo $class.” “.$author_class ?> ” id=”comment-<?php comment_ID();?>”>[/source]

Bagian CSS

Memanipulasi theme wordpress sudah, sekarang saatnya kita memberikan sebuah penyelesaian akhir atas manipulasi yang telah kita buat. Yang perlu diingat, akan ada 3 buat class baru yang harus kita definisikan di file style.css yang ada di theme aktif. Yaitu, class comment-1, comment-2, dan byauthor.

Buka file style.css, dan tempatkan kursor di bagian paling akhir. Tulis seperti ini:

[source:css].comment-1 {
background:#F1F0DC;
}
.comment-2 {
background:#F7F7F7;
}
.byauthor {
background:#EFEFEF !important;
border-top:1px solid #999;
border-bottom:1px solid #999;
}[/source]

Artinya, kita membuat blok komentar yang bernilai genap dengan background berwarna agak orange, dan blok komentar yang ganjil dengan background berwarna abu-abu terang. Sedangkan untuk si author, memberi warna abu-abu terang yang lebih gelap sedikit dari blok ganjil, serta menambahkan border di atas dan di bawah.

Ternyata memang mudah, kan? :P

Related posts:

  1. Tutorial: Membuat template WordPress (1) Siapapun yang punya blog dengan mesin WordPress tentunya ingin membuat...
  2. Tutorial: Membuat template WordPress(3) – Header Lanjut lagi. Setelah membahas masalah desain, kini kita berlanjut ke...
  3. Tutorial: Membuat template wordpress (2) – Desain template Yeah, akhirnya tutorial bagian pertama dilanjutkan. Dari beberapa komentar dan...
  4. Tutorial: Membuat 2 kolom sama tinggi tanpa bantuan image Perhatian: Tulisan ini sangat panjang. Lebih baik invite aan sebelum...
  5. Belajar Javascript lebih lanjut dengan JQuery (2) Membuat form dengan AJAX Membuat form adalah hal biasa dalam...

Label:, , , , , , ,



Kategori:blog, programming, Technology, tutorial, wordpress



66 Responses

  1. golda says:

    bukannya plugins nya ada?

  2. Didats Triadi says:

    #1 embeer. cuma apa ndak lebih baik langsung ke code-nya daripada install2 plugin.

  3. Yogie says:

    Pusyiiiinggg…..

  4. dadan says:

    aku coba, looping if dalam foreach nya udah jalan. jadi udah bisa ganti-ganti id.

    tp script css nya gak jalan. jadi background comment masih tetep aja nih… napa ya ?

    ini source html yang di generate :

    dan ini css nya :
    comment-1 {
    background-color:#F1F0DC;
    color:#333333;
    }
    comment-2 {
    background-color:#F7F7F7;
    color:#333333;
    }

    bisa kasih saran, Dats ?

  5. dadan says:

    ini source html yang digenerate :

  6. agung says:

    mas,klo boleh request nih..bikin tutor ttg sistem wordpress itu sendiri dunks.

    coz aq rada susah baca sistematika yang dipakai WordPress buat jalanin semua fungsi php’a.

    ato terusin dunks tutorial membuat Tutorial: Membuat template WordPress (1)
    tapi langsung jelasin fungsi php’a.


    Trims.

  7. Didats Triadi says:

    #4 itu kode css-nya, gag pake titik di depan?

  8. agung says:

    #4 DADAN

    maksudnya, ganti ID author ya..
    klo iya..kenapa harus looping..langsung aja ditentukan didalam statmentnya

    jadi misalnya admin punya 2 akun email bisa langsung:
    if($comment->comment_author_email == ("didats@dimanasaja.com","email@dimanasaja.com")) $author_class = "bya

    mungkin begitu…
    Mohon pembenarannya karena aq blum mengujinya.


    Trims.

  9. Didats Triadi says:

    #8 kok ganti ID author?
    bukaan, itu kan karena dia lupa naro titik di css-nya.

    eh, lagi pula, kodenya salah tuh. dan memang harus berada di dalam looping. gag bisa di luar.

    untuk 2 account email, bisa dilakukan begini:

    if(
    $comment->comment_author_email == "didats@dimanasaja.com" ||
    $comment->comment_author_email == "email@dimanasaja.com")
    $author_class = "byauthor";

  10. dadan says:

    9@DIDATS TRIADI
    haha…
    It works.
    Ada dua kesalahan yang perbaiki :
    - kurang ‘s’ (comments di css style, aku tulis comment di file Comments.php)
    - looping. Saya masukin ke dalam looping dari div hingga /div

    Hoa… ! Thx ya Dats.. !
    Ajiiib….

  11. dadan says:

    eh kesalahan ketiga, dink :
    - seperti yang dibilang ente Dats, kurang titik !

    Sorry, ngejunk disini. Internet ku lagi sux nih …

  12. Didats Triadi says:

    #11 zen!
    karena saya liat kode html-nya udah bener.

    ngejunk? gak apa-apa… dipersilahken

  13. iang says:

    kalo gue tau email yg lo pake, gw bisa pura2 jadi elo dong?

    trus.. ini versi 1 baris :D

    inisialisasi dg..

    $j = 1;

    lalu di dalam loop nya..

    $class = "comment-" . ($j = 3-$j);

    ~berlalu

  14. iang says:

    komen gw kok gak masuk? apa kena moderasi? huhuhu

  15. iang says:

    tambahin lg ahh.. ngomentarin #9.. akan lebih rapi jika dibuat seperti ini :D

    if (in_array($email, array("satu", "dua", "tiga"))) { ...

  16. nah, manteb nih!
    iya, coding langsung emang lebih enak daripada pake plugin
    kalo ngerti :d

    berguna nih – thanks, dats.

  17. sidaut says:

    wah.. ga pernah jadi melulu nih ketemuan.
    mungkin udah males duluan krn aku bilang mau banyak tanya ya? aku cuma mau tanya basic aja.. ga ngerti sama sekali nih.. ditunggu sharing nya.. terimakasih

  18. sidaut says:

    cuma mau ngecek.. yg tadi masuk ga ya?

  19. Yogi says:

    Woi, bayar hak paten! Komen gw kok masuk dalam skrinsut? Huehuehue :p

    Btw, great tutorial! Keep it up mate. Cheers!
    *sok jadi orang aussie*

  20. Didats Triadi says:

    #13 yang baca kan bukan para programmer kaya elu… jadinya, gw kasih logika yang simpel aje… hehehe

    #16 setelah mendalami wordpress, dan melihat-lihat plugin, ternyata banyak plugin sederhana yang bisa diselesaikan langsung di code. nah, inilah yang menjadi perhatian saya.

    #17 ya nda to mas. memang kita belum dapet waktu yang pas. ayo kapan ketemuannya…

    #19 ooh, udah jadi orang aussie nih ceritanya? gaji dapet berapa? :p

  21. Rosyidi says:

    Wah ganti lagi nih theme komennya. Lebih bagus yg ini daripada yg dulu menurutku :)

  22. dadan says:

    dats, next tulisin ttg codingnya browser plugin ya..

    ** ngelunjak **

    hihi..

  23. rd Limosin says:

    kalo nentuin komeng_author pake email, gimana kalo ada komentator yang tau email author, kan dikira orang inilah sang author, padahal bukan.

  24. Didats Triadi says:

    #23 halah

    okeh, analoginya gini.

    gw punya blog, trus gw tau email elu. nah, sekarang, masa gw pengen pasang email elu sebagai admin di blog gw?

    lah, kan gag lucu. buat apa? toh, blognya itu blog gw.

    buat yg gag setuju caranya, gampangnya bisa pake is_author() aja dah.

  25. hielmy says:

    salut buat para programmer, saya mah segini aja udah pusing minta ampun, apalagi yang bikin dari nol….. ckckckck…

  26. iang says:

    #24: emang email yg ditulis di komentar ini bakal didaftarkan jadi member blog?

    emang gw gak bisa masukin email elo?

  27. devari says:

    waaah yg pastinya rumus2 diatas bukan untuk konsumsi saya neh :(
    nyerah deh mas.

  28. Didats Triadi says:

    #26 kenapa berfikiran kaya gitu?
    bingung gw…

    elu bisa aja masukin email gw. tapi buat apaan? kan blog gw…

  29. iang says:

    kan di komen keliatannya dari elo dat :P stylenya jadi beda karena dikasih kelas “byauthor” juga. *pemalsuan identitas* yayaya. ini bisa terjadi dimana saja kok :-)

  30. geblek says:

    yah lagi2 tutormu nendang banget dats :), saya sih nglirik kapan ada free themes lagi di blogmu :)

  31. agung says:

    wuiihh..

    seru khan klo ngomongin pemograman web, gk ada habisnya..

    terus aja om didats bikin tutor ky gini..


    Trims.

  32. Jauhari says:

    Tambah Kreatip wae arek iki :D Yo ngono lo, ilmu di bagi bagi ;)

  33. indra says:

    buat gravatarnya manaaa???

  34. yaddi says:

    ooo gitu toh caranya.. klo ngatur tampilan gravatar caranya gimana?

  35. day... says:

    aku baru masuk WP. aku mau pakai cara ini..

  36. Insan says:

    sekedar tambahan, pak didat. bisa pake:

    if( 0 == $comment->user_id )

    komentator (tanpa login), nilai defaultnya selalu “0″ walaupun dia tahu + malsuin alamat email penulis/pemilik blog.

  37. Didats Triadi says:

    #36 pinter! cerdas!

    makasih mas.

  38. gagahput3ra says:

    Lam kenal mas :)

    Nice tips, tp ada pertanyaan yg OOT neh…klo mo nambahin tagline ke header yg gak ada taglinenya gimana ya? Soalnya di blog sy cuma bisa pake judul doang :|

  39. gagahput3ra says:

    langsung pake tag html gitu? mang bisa? :P wah giling dipanggil mas…. :mrgreen:
    masi abegeh mas :lol:

  40. Gung De says:

    Wah… mantab Mas ilmu yang bisa diambil.
    jadi pengen blajar PHP.

  41. [...] lebih cantik, bisa main main di kode style.css dan mainkan jarimu, atau bisa juga menerapkan teknik mempercantik komen dari seorang mantan playboy css yang saat ini sedang berada di [...]

  42. Ronggo says:

    gilak bener , bener aja gak gila
    rumutt buangget ooom mo coba takut eroor tapi ya pingin sih

  43. nindityo says:

    @ Golda (#1)

    Plug in nya apa ya ?
    Sebelum aku coba edit php dan css nya.
    Makasih ya :D

  44. ipank says:

    puyeng saya!!!!:@

    saya baru nyoba bikin blog ne….
    ada yg berkenan bantuin saya ga?!?!?!?

    P L E A S E . . . .

  45. Amel says:

    lumayan ruwet juga ya..

  46. [...] { Juli 25, 2008 @ 5:55 am } · { Home } { Tags: Add new tag } Untuk membuat warna strip di blok komentar, anda membutuhkan sebuah variabel penunjuk status. Kita bisa membuat variabel sendiri bernama katakanlah, j. Jadi, ubah kode foreach di atas menjadi seperti ini kira-kira. view plainprint? [...]

  47. tya says:

    koq di blog saya tidak bisa posting komen ya?
    blog-nya minta kita harus login terlebih dahulu untuk bisa kasi komentar

  48. Didats Triadi says:

    #46 di link option di wordpress admin, ada link discussion, nah, coba liat-liat di sana. kali aja ada yang kelewat mba

  49. muhibbuddin says:

    aduh, bingung kabeh, gak ngerti mas..

  50. Newbie Beneran says:

    Mo nanya nih, biar setiap comment punya foto”nya kayak yang ini, caranya gimana ya?