February 14th, 2008

Didats dot netMenjadi seorang web designer tentunya punya beban dan ego yang besar terhadap situsnya sendiri. Dengan segenap usaha, daya, jurus-jurus maut, pokoknya semua kemampuan dikeluarkan demi mempercantik situs blognya sendiri.

Bukan sekali dua kali, setelah selesai proses design, dan setelah puas, lalu beristirahat sebentar. Setelah beberapa menit kembali di depan macbook kesayangan, ternyata hati sudah berubah. Design yang tadi sudah dibuat, seakan-akan jadi design yang paling jelek sedunia. Halah. Ganti lagi lah jadinya. Hehehe.

Nah, mumpung lagi doyan nulis, maka yang ada di kepala saya, akan saya tuliskan semua. Tak perduli sudah berapa komentar yang masuk, juga tak perduli berapa orang yang baca. Yang penting nulis aja dulu…

Export data ke WordPress

Setelah mempelajari struktur database WordPress, akhirnya saya memberanikan diri untuk pindah ke WordPress. Kebetulan struktur datanya tidak banyak perbedaan dengan blog hasil buatan saya. Proses pemindahan data tidak memakan banyak waktu di kode PHP. Hanya banyak memakan waktu saat mencocokkan data dari Didats.net yang dulu ke WordPress. Lebih tepatnya, faktor mempelajarinya itu yang butuh waktu.

Terminologi Blog Didats.net

Saya punya dua kategori utama untuk setiap post yang saya tulis. Yaitu Blog dan Sideblog. Penggunaan sideblog di sebelah kanan pada halaman depan tidak menggunakan plugin apa-apa. Hanya mengandalkan kategori Sideblog saja.

Bagaimana memisahkan antara sideblog dan post?

Saya biasanya menggunakan fungsi get_post yang ada di wordpress. Untuk menampilkan post terakhir, saya menuliskannya sebagai berikut:

[source:php]<?php
$lastposts = get_posts(‘numberposts=1&category=3′);
foreach($lastposts as $post) :
setup_postdata($post);
?>[/source]

Maksud dari perintah di atas adalah, “tampilkan 1 post terakhir dengan kategori id adalah 3″. Kategori ID nomor 3 sendiri adalah kategori Blog. Jadi, kategori blog adalah hal wajib ketika saya ingin menampilkannya sebagai sebuah post, bukan sebagai sideblog.

Previous Post

Untuk Previous post, saya menggunakan query_post. Tidak ada bedanya menggunakan query_posts atau get_posts. Parameter untuk menampilkan previous post adalah seperti di bawah ini:

[source:php]<?php
$i = 0;
$lastposts = query_posts(‘showposts=5&cat=3&orderby=post_date’);
foreach($lastposts as $post) :
setup_postdata($post);
$i++;
if($i==1) continue;
?>[/source]

Penjelasannya, query_post akan menghasilkan 5 buah post terakhir dengan kategori ID adalah Blog. Nah, saya menampilkan 5 post, tapi kenapa yang keluar cuma 4?

Perlu diketahui, 5 buah post terakhir, juga berarti post yang sudah saya tampilkan sebelumnya di bagian atas. Jadi, untuk tidak mengikutsertakan post terakhir, maka saya menggunakan variabel penunjuk $i.

Jadi, sebelum ada perulangan foreach, saya mendaftarkan sebuah variabel bernama i yang bernilai 0. Di dalam perulangan, saya langsung menambahkan variabel i tersebut dengan 1 (ditandai dengan $i++). Setelah adanya penambahan, saya langsung memberikan kondisi. Kondisinya, jika nilai variabel i adalah 1, maka perulangan pertama akan diabaikan, dan langsung memulai perulangan kedua.

Dan untuk menampilkan preview gambar di setiap post, saya menggunakan bahasa Regular Expression yang mengambil gambar pertama yang ada di post, dengan kode di bawah ini:

[source:php]$the_content =$wpdb->get_var(“SELECT post_content FROM $wpdb->posts WHERE ID = $id”);
$pattern = ‘/<img\s+src=”(?P<image>[^"]+)”[^>]*>/i’;
preg_match_all($pattern, $the_content, $matches);
$image_src = $matches['image'][0];[/source]

Dari kode di atas, saya mencoba untuk langsung berinteraksi dengan database menggunakan bahasa SQL. Dengan kode SQL “SELECT post_content FROM $wpdb->posts WHERE ID = $id“, maka saya akan mendapatkan isi konten dari post yang sedang diakses.

Isi kontent tersebut akhirnya saya proses untuk mencari tag image. Saya sendiri hanya mengambil tag image pertama yang ada di dalam isi konten. Lalu URL image saya masukkan ke dalam variabel $image_src.

Nah, dari situ kita bisa langsung menampilkan gambarnya dengan tag IMG, tapi terlebih dahulu kita cek, apakan gambar di temukan. Jika tidak, maka tidak perlu ditampilkan. Berikut perintahnya:

[source:php]<?php if($image_src!= “”) {?>
<img src=”<?php echo $image_src?>” alt=”image” class=”img-posts” />
<?php } ?>[/source]

Nah, gampang kan? :p

Sideblog tanpa plugin

Untuk menampilkan sebuah sideblog tanpa menggunakan plugin, saya hanya menggunakan kode berikut ini:

[source:php]<?php
$lastposts = get_posts(‘numberposts=8&category=14′);
foreach($lastposts as $post) :
setup_postdata($post);
?>[/source]

Artinya, Tampilkan 8 post terakhir dari kategori ID 14. Kategori ID nomor 14 sendiri adalah Sideblog. Penggunaan sideblog tanpa plugin berarti mempermudah saya untuk mengkategorisasi setiap post yang mau saya publish.

Dan dengan banyak kostumisasi dari WordPress, maka memungkinkan kita membuat apapun yang kita inginkan dari sebuah wordpress saja. Memang ada beberapa kelemahan, tapi saya pikir kelemahan itu bisa kita tutup dengan pengetahuan yang kita punya tentang wordpress.

Related posts:

  1. Published My Portfolio Finally, My Portfolio page has published. It’s quite hard to...
  2. Tutorial WordPress: Membuat daftar komentar lebih menarik Saya masih saja agak kesulitan untuk menulis tutorial baru tentang...
  3. Belajar Javascript lebih lanjut dengan JQuery (2) Membuat form dengan AJAX Membuat form adalah hal biasa dalam...
  4. Kenapa WordPress Inilah tampilan baru blog saya. Bukan lagi mengandalkan skrip buatan...
  5. Tutorial: Membuat template WordPress (1) Siapapun yang punya blog dengan mesin WordPress tentunya ingin membuat...



Kategori:Technology, blog, general, programming, tutorial



30 Responses

  1. chazzuka says:

    he eh liat photo aku kira gugun gondrong :P

  2. Jauhari says:

    O jadi begitu

    FAHAM FAHAM angguk angguk

  3. sigit says:

    hmmm… Dats, kayaknya udah perlu diganti lagi d’ theme-nya kekekeke…:p

    *kabur

  4. agung says:

    yup…semakin okeh sajah nih.

  5. daustralala says:

    ooo begitu ya…

    *sok ngerti

  6. Fany says:

    oo yg sideblog (atau selected category) gitu to..
    kalo bukan pake kategori tapi tags gimane? sama aja kah?

  7. Yogi says:

    Ahh, pak guru pintar sekali…
    Sebagai anak murid, saya ngangguk2 aja deh :D.

    Keep on sharing pak guru…

  8. agung says:

    cuman bisa manggut-manggut dan tunduk hormat sama sang master, caranya OK banget suheng hehehe

    thank infonya sangat menarik

  9. Didats Triadi says:

    *jitakin yg manggil pak guruw*

  10. geblek says:

    weee saya nyari cara nampilin img itu datsm hah ternyata cuma spt itu :) tes ah

  11. geblek says:

    xixixi gak bisa jg ternyata dats, apa ada tambahan selain itu untuk ambil img di postingan yg ditaruh di previous post itu dats.

  12. Suwahadi says:

    Hm… betul2 membingungkan :D

  13. itu gue nyari-nyari yang ngambil image buat previous post :d

    lanjut, dats!
    *sambil nyatet buat contekan

  14. Insan says:

    met kenal, pak. bagus tampilan baru dan tutorialnya.

    untuk “image-preview” bukannya lebih mudah pake get_post_meta()?

  15. Didats Triadi says:

    #14 get_post_meta itu kan ngambil custom field. masalahnya, image-nya kan gag di simpen sebagai custom field, tapi ngambil dari konten.

  16. Indra says:

    Di, saya ngerti yang soal memisahkan category untuk blog dan sideblog. Tapi menampilkannya? automatis yang masuk kategori sideblog ga mau gw tampilin di main blog. dan juga sebaliknya.

    Gimana tuh?

  17. Indra says:

    eh ga jadi deh.. baru ngeh. hahahaha.

  18. Didats Triadi says:

    #16 loh, justru itu dipisahin kan?
    Kalau mau ditampilkan semua di main blog, berarti gag usah ada klasifikasi di main blognya. tampilkan semua kategori aja.

    Kecuali, di bagian Feed-nya. semua post data akan di tampilkan di feed. karena feed mengikuti klasifikasi secara default.

  19. tobby says:

    maaass aku nyonto ilmunya yoh =)) hampir 60% ilmu ma inspirasi dapet dr sini =)) tapi aku ga njiplak lhoh… makasih banyak yoh mas =))

  20. geblek says:

    dats untuk sideblog yg tanpa plugins itu saya coba kok dia masuk ke halaman utama juga, jadi ada 2, di sidebar ada juga :)

  21. Didats Triadi says:

    #19 iya, ndak opo2 toh…

    #20 di halaman utama udah di klasifikasi belom kalo yg boleh keluar cuma kategori tertentu?

    kalo keluar di halaman utamanya, berarti blom di klasifikasi-in tuh

  22. geblek says:

    cara klarifikasi dihalaman utama agar category sideblog gak tampil gimana dats ?
    ah pasti elo bilang ini kan dasar banget :)

  23. Didats Triadi says:

    #22 nah itu dia,
    elu harus punya satu kategori yang akan selalu muncul di halaman utamanya.

    kalo di blog gw, itu kategori blog. seperti sebuah kategori default.

    dan untuk si sideblog, elu cukup kasih kategori sideblog aje, gag usah dikasih kategori blog.

    eh, ngerti gag? :D

  24. taufan says:

    wah,artikel yang ini keren bgt mas dats!
    btw busway, hosting 1500G emang bagus tuh.cm mpe skarang temen2 malah mngundurkan diri.nunggu proyek situs dari kampus aja deh,baru pake link referrernya mas didats :)

  25. ega says:

    numpang lewat mawon mas

  26. yossy says:

    bos aku minta contoh buat php dunk..
    previus post na ..
    bisa gak, thnak ,, kirim ke mail kuw yah

  27. yossy says:

    bos aku minta contoh buat php dunk..
    previus post na ..
    bisa gak, thank ,, kirim ke mail kuw yah

  28. rhe says:

    nice article bro… ^^
    emang iya sih, serba bingung…
    pengennya di oprek mulu…
    hehehe… lam knl mas :)

  29. achmadbiz says:

    wah makasih mas, jadi nambah ilmu, sama dengan kang deny nyari nyari buat ngambil gambar di postingan :). BTW untuk nampilin previus post diatas “n”
    sptnya bisa pakai offset.
    $lastposts = query_posts(’showposts=5&cat=3&orderby=post_date&offset=n’);

    CMIIW :)

  30. Keris says:

    Save dulu … belum nyampe … :)