Nov 11, 2008
Tutorial Cara Membuat Theme WordPress Sendiri ( Langkah #4 : Memuat Konten Blog Ke Dalam Theme)
oleh Fikri
Lanjutan dari seri Tutorial Cara Membuat Theme WordPress Sendiri. Untuk memastikan tidak ada miskonsepsi, kami rekomendasikan anda membaca seri post ini dari awal :
- Langkah #0 : Pendahuluan, serta tools – tools yang dibutuhkan
- Langkah #1 : Memahami Struktur File Theme WordPress
- Langkah #2 : Memahami Tag – tag XHTML & Kegunaannya, dan aturan penulisannya
- Langkah #3 : Membuat File Dasar Theme WordPress : index.php & style.css
Ok. Seperti pada post sebelumnya, awali dengan nyalakan XAMPP Control Panel, hidupkan Apache Server & Database MySQLnya, lalu buka aplikasi browser dan buka halaman dashboard administrator wordpress lokal anda ( http://localhost/wordpress/wp-admin ).
Pada post kali ini, kita akan “memuat” konten blog kepada Theme WordPress yang telah kita buat kemarin. Tepatnya, memasukkan konten blog ke halaman utama blog ( index.php ) yang filenya telah kita buat kemarin. Maka dari itu, coba perhatikan struktur halaman utama sebuah blog wordpress pada umumnya :
Dari contoh sebuah halaman utama blog wordpress ini, bisa kita simpulkan elemen – elemen yang membangun sebuah halaman blog wordpress :
- Header / Nama Blog
- Tagline Blog
- Menu ( Memberikan link ke page / halaman statis )
- Post & Metadata Post( Terdiri dari judul post, potongan/keseluruhan post, link read more, link komentar, link tags, dan link category )
- Link untuk membaca entri sebelumnya ( Previous page )
- Sidebar
Pada Post pendahuluan saya sudah menjelaskan mengenai rumus sederhana membuat wordpress theme :
WordPress Theme = XHTML + tag-tag PHP untuk memanggil fungsi & konten WordPress + CSS + Javascript ( untuk efek2 tertentu )
Pada Langkah #2 kita sudah mempelajari sedikit mengenai tag – tag XHTML. pada post kali ini, yang akan kita pelajari adalah bagian tag – tag PHP untuk memanggil fungsi & konten wordpress. Kita akan bahas satu persatu tag yang akan kita gunakan untuk memanggil elemen – elemen halaman utama blog wordpress.
Sekarang, buka file index.php pada folder latihantheme : kita mendapati satu file php yang masih kosong. Untuk pendahuluan, ketik / copy paste script ini diantara <head> dan </head> :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats please -->
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<?php wp_get_archives('type=monthly&format=link'); ?>
<?php //comments_popup_script(); // off by default ?>
<?php wp_head(); ?>
Ok, script apa ini?
script yang anda baru copy paste kan adalah tag php untuk memanggil informasi pada <head>. Kita sudah bahas pada langkah #2 bagian Tag Pembangun Halaman bahwa informasi yang ditulis diantara tag <head> dan </head> adalah informasi mengenai halaman web yang tidak ditampilkan pada browser. Informasi ini dimuat untuk kepentingan teknis, seperti SEO. Yup, hal yang teknis dan sudah strict. maka dari itu copy dan paste saja.
Header / Nama Blog
Header / Nama Blog dipanggil menggunakan tag sederhana ini :
<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>
Ketik / Copy paste kan ke file index.php, diantara tag <body> dan </body>
Tagline Blog
Tagline Blog dipanggil menggunakan tag sederhana ini :
<?php bloginfo('description'); ?>
Ketik / Copy paste kan ke file index.php, diantara tag <body> dan </body>, setelah tag pemanggil nama blog
Menu ( Memberikan link ke page / halaman statis )
Menu untuk link ke halaman statis dipanggil menggunakan tag ini :
<ul>
<li class="first"><a href="<?php echo get_option('home'); ?>/">Home</a></li>
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li=');?>
</ul>
Ok, yang ini agak sedikit tricky. kita bahas yang satu ini.
- pertanyaan pertama yang keluar adalah : mengapa menggunakan tag unordered list + list item? jadi list dengan bullet style dong? well, pertama kali mempelajari hal ini di blog Kang Didats, saya juga memiliki pertanyaan serupa. Jawabannya : Pada design menggunakan CSS, memang begini gayanya. nantinya, si menu akan dibuat memanjang secara horizintal, di styling menggunakan CSS
- selanjutnya, penjelasan list item pertama : <?php echo get_option(‘home’); ?>/ adalah tag untuk memanggil halaman home blog wordpress, maka dari itu ditaruh sebagai nilai dari atribur href yang melink ke home
- penjelasan list item kedua : <?php wp_list_pages(‘sort_column=menu_order&depth=1&title_li=’);?> merupakan tag untuk memanggil link ke page, dan menyusunnya sebagai list item.
Post & Metadata Post ( Terdiri dari judul post, potongan/keseluruhan post, link read more, link komentar, link tags, dan link category )
Waw, yang ini Lebih tricky lagi. bagian post ini menggunakan fungsi loop pada php. yang dimaksud dengan loop disini adalah pengulangan. Coba anda perhatikan, ada berapa post & metadata yang muncul pada halaman utama blog wordpress? jumlah pengulangan tergantung pada setting di bagian setting > reading. Namun intinya, bagian ini menggunakan fungsi loop, dengan parameter jumlah pengulangan yang di setting pada Setting > Reading.
ini tag yang dibutuhkan untuk memuat Post & Metadata post pada theme :
<?php if(have_posts()):?>
<?php while(have_posts()):the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php _e('Category :'); ?> <?php the_category(', ') ?> <?php _e('| ');?> <?php the_tags(); ?> <?php _e('| ');?> <?php the_time('M') ?> <?php the_time('d') ?>, <?php the_time('Y'); ?> <?php _e('by'); ?> <?php the_author(); ?>
<?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?> <?php edit_post_link('Edit', ' | ', ''); ?>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
<div class="navigation">
<?php posts_nav_link(); ?>
</div>
<?php else: ?>
<div class="post">
<h2><?php _e("The page you've requested does not exist.
Suggestions:
<ul>
<li>Check the spelling of the address you typed</li>
<li>If you are still having problems, please contact us</li>
</ul>"); ?></h2>
</div>
<?php endif; ?>
Penjelasan :
- <?php if(have_posts()):?> mengecek, jika terdapat post pada database, maka lakukan perintah dibawah hingga tag <?php else: ?>
- <?php while(have_posts()):the_post(); ?> = ulangi ( loop ) konten sejumlah parameter pada setting > reading
- <div class=”post” id=”post-<?php the_ID(); ?>”> = mengelompokkan post dalam div khusus
- <h2><a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>”><?php the_title(); ?></a></h2> = memuat judul post dan link, dalam ukuran header 2
- <?php the_content(); ?> = memuat konten post
- <?php _e(”); ?> = Memuat tulisan yang berada dalam ”
- <?php the_category(‘, ‘) ?> = Memuat category yang dimiliki post
- <?php the_tags(); ?> = memuat Tag yang dimiliki post
- <?php the_time(‘M’) ?> = Memuat data waktu ( bulan ) post di publikasi
- <?php the_time(‘d’) ?> = Memuat data waktu ( tanggal) post di publikasi
- <?php the_time(‘Y’); ?> = Memuat data waktu ( tahun ) post di publikasi
- <?php the_author(); ?> = Memuat data penulis post
- <?php comments_popup_link(‘No Comments’, ’1 Comment’, ‘% Comments’); ?> = Memuat jumlah komentar yang dimiliki post
- <?php edit_post_link(‘Edit’, ‘ | ‘, ”); ?> = Memuat link edit pada post, jika pengakses halaman blog merupakan author dari post
- <?php endwhile; ?> = Mengakhiri pengulangan ( loop ) yang dilakukan <?php while(have_posts()):the_post(); ?>
- <?php posts_nav_link(); ?> = Memuat link “Next Page” atau “Previous Page”
- <?php else: ?> = Mengakhiri perintah yang dilakukan <?php if(have_posts()):?> . Artinya, jika tidak ditemukan post pada database, kalukan perintah yang tertulis setelah <?php else: ?> hingga <?php endif; ?>
- <?php endif; ?> = mengakhiri semua perintah yang ada di bagian <?php if(have_posts()):?>
Well, a litle bit tricky kan?
Sidebar
yang ini lebih tricky lagi. perhatikan bagian ini baik – baik : Untuk mengelola sidebar, tim developer wordpress telah mengembangkan sistem widget, sistem yang memungkinkan anda menambah atau mengurangi konten sidebar hanya dengan drag and drop pada bagian Design > Widget. kami membahasakan ini dengan istilah widget ready.
nah, untuk memfungsikan fungsi widget ini, diperlukan file khusus bernama function.php. maka dari itu, buat file baru ( Ctr + N ) pada aplikasi notepad ++ anda, lalu ketik / copy paste script ini :
<?
if ( function_exists('register_sidebar') )
register_sidebars(1);
?>
Save pada direktori latihantheme dengan nama file function.php
sekarang, coba perhatikan : register_sidebars(1); . angka 1 disini berarti sistem wordpress akan membuat satu sidebar. Jika anda hendak membuat lebih dari satu sidebar, ganti saja jumlah dalam tanda kurungnya. untuk tutorial ini, kita hanya akan menggunakan satu sidebar saja. jadi tidak usah diganti dulu.
Sekarang, tag untuk memuat sidebar pada theme. Ketik / Copy Paste tag berikut pada file index.php, setelah tag <?php endif; ?> :
<?php dynamic_sidebar(1);?>
perhatikan : ada angka 1 disana. jika anda meregister sidebar lebih dari satu, maka anda perlu membuat beberapa tag seperti ini, dengan inisial angka berbeda. Namun pada tutorial ini, kita bermain denga satu sidebar saja dulu, jadi tidak usah diganti.
Bingung Mengetikkan kodenya secara terpisah? Ini Summarynya
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats please -->
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<?php wp_get_archives('type=monthly&format=link'); ?>
<?php //comments_popup_script(); // off by default ?>
<?php wp_head(); ?>
</head>
<body>
<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>
<?php bloginfo('description'); ?>
<ul>
<li class="first"><a href="<?php echo get_option('home'); ?>/">Home</a></li>
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li=');?>
</ul>
<?php if(have_posts()):?>
<?php while(have_posts()):the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php _e('Category :'); ?> <?php the_category(', ') ?> <?php _e('| ');?> <?php the_tags(); ?> <?php _e('| ');?> <?php the_time('M') ?> <?php the_time('d') ?>, <?php the_time('Y'); ?> <?php _e('by'); ?> <?php the_author(); ?>
<?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?> <?php edit_post_link('Edit', ' | ', ''); ?>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
<div class="navigation">
<?php posts_nav_link(); ?>
</div>
<?php else: ?>
<div class="post">
<h2><?php _e("The page you've requested does not exist.
Suggestions:
<ul>
<li>Check the spelling of the address you typed</li>
<li>If you are still having problems, please contact us</li>
</ul>"); ?></h2>
</div>
<?php endif; ?>
<?php dynamic_sidebar(1);?>
</body>
</html>
Ok. sekarang kita memiliki 3 file : index.php yang sudah bisa memuat konten dari blog, function.php yang berisi fungsi widget, dan style.css. Sekarang, masuk Dashboard > Design > Theme, lalu activate Theme Latihan ini. Lihat tampilan theme latihan kita.
Yup, cukup untuk pembahasan post ini : Memuat Konten blog pada theme. Pada post selanjutnya kita akan membahas Styling Theme menggunakan CSS.
Ada pertanyaan? atau Ada langkah yang kurang jelas? Atau mungkin ada yang terlewat? izinkan kami mengetahuinya. silahkan sampaikan pandangan anda melalui kolom komentar
Enjoy!
Dapatkan update harian bloggingly GRATIS di RSS Reader anda! Subscribe sekarang RSS FEED BLOGGINGLY !
Apa itu RSS? Kenali RSS di halaman ini


aimyaya bilang,
Wah banyak juga..
Saya juga sudah nyoba lewat trial and error..
on 19 Nov 2008 / 15:40
F bilang,
Yup. agak panjang juga. saya tambahkan penjelasan2 dasar sih
on 20 Nov 2008 / 04:50
evan bilang,
z binggung dengan penjelasan anda?? z cuma mau nya apa si sebenarya fungsi edit css pada worpress
on 26 Nov 2008 / 10:40
fiarchan bilang,
Mas kalo buat yang 3 kolom gimana ya?
Soalnya mas kan ngasih contohnya cuma pake 2 kolom
on 09 Feb 2009 / 09:42
dedy bilang,
iya ,,, untuk kolomnya belum dijelaskan..
on 08 Jul 2010 / 15:17
Fikri bilang,
Kolom yang mana?
on 09 Jul 2010 / 10:22
jan bilang,
Makasih, keren banget.
Jadi tambah ilmu deh…..
on 16 Feb 2009 / 11:15
Himawan bilang,
wah,,krennnnn
on 14 Jul 2009 / 11:04
detnot bilang,
Bro, gimana kalo di sediakan source code script dr tutorial ini.
Coz kalo dr sini, ketika di paste ke macromedia tidak bisa di simpan karne encodenya berubah. trims
on 16 Jul 2009 / 13:03
japestinho bilang,
@Detnot
Ow begitu, tapi sudah dicoba untuk di copy paste ke notepad dulu? Setelahnya baru di copy paste ke dreamweavernya lagi
on 17 Jul 2009 / 00:34
Mphumsiey bilang,
kok waktu diactivate malah nongol tulisan Parse error: syntax error, unexpected ‘=’ in C:\Program Files\xampp\htdocs\website\wp-content\themes\latian\index.php on line 15
on 29 Jul 2009 / 17:03
regina bilang,
Mr, saya punya blog, tapi di halaman home-nya (index) link untuk menuju ke arsip posting sebelumnya tidak dapat berfungsi. Kalau diklik, maka akan tetap menuju ke bagian top dari halaman home. Berikut scriptnya:
<a href="”>Lihat artikel lainnya di dalam arsip
Bagaimana caranya agar script ini dapat berfungsi dan dapat menampilkan arsip-arsip blog sebelumnya?
Terima kasih atas jawabannya…
on 25 Aug 2009 / 10:09
samu bilang,
buat temen2 yang kesulitan ini http://beamermultimedia.beamerhost.com/files/latihan.zip
on 10 Sep 2009 / 12:39
ziganks bilang,
kok yang muncul :
Parse error: syntax error, unexpected ‘=’ in C:\xampp\htdocs\wordpress\wp-content\themes\Themelatihan\index.php on line 14
mohon bantuannya terima kasih
on 14 Oct 2009 / 23:12
Hangga Nuarta bilang,
Wah kok sampai di tahap ini templatenya error ya Mas dijalankan??? Pesannya gini:
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\wordpress\wp-content\themes\1stproject\index.php on line 33
Padahal baris kode ke 33 udah saya tulis sesuai dengan tutorial di atas:
Apanya yang salah ya???
on 08 Nov 2009 / 12:14
maskun bilang,
tutorial yang lengkap, terima kasih. Saya ingin merubah sedikit template yang sudah jadi. pada bagian menu hanya ada dua yaitu ‘Home’ dan ‘About’. saya ingin menambah ‘Contact Me’ caranya bagaimana ya? lalu penulisan ke halaman yang dituju bagaimana?
NB : yang saya dapatkan dari editor theme adalah skrip ini
div class=”nav”>
on 09 Jan 2010 / 21:55
Fikri bilang,
@maskun
Tidak perlu mengedit theme Pak. Cukup masuk ke dashboard > Pages > Add New.
Komentar Maskun jadi hilang karena ada tag-tag yang tidak diperbolehkan untuk masuk via komentar karena alasan keamanan
on 10 Jan 2010 / 11:11
maskun bilang,
alhamdulillah… ternyata semudah itu ya. terima kasih mas fikri. Tapi saya dah ganti template nih, soalnya di template yang lama kode di footernya gak ada(sebenarnya ada tapi bukan kode melainkan sesuatu yang gak jelas) padahal saya ingin memasukkan kode google analytic di footer.
on 10 Jan 2010 / 12:39
dieyna bilang,
@ziganks
masalahnya ada pada penulisan karakter (‘)
on 14 Jan 2010 / 23:44
Tips blog bilang,
Gile nih tutorial keren amat ya! thanks bro!
on 20 Mar 2010 / 10:39
Tutorial Cara Membuat Theme Wordpress Sendiri ( Langkah #5 : Mendesain Theme Menggunakan CSS ) bilang,
[...] Langkah #4 : Memuat Konten Blog Ke Dalam Theme [...]
on 10 Apr 2010 / 12:18
ibenxs bilang,
mas bisa buatin gak,,,,, hehehehehe
on 03 May 2010 / 10:55
Fikri bilang,
bisa, tapi ada biayanya
on 04 May 2010 / 05:26
agito bilang,
thanks infonya, tapi pengen tau cara nampilin script di blog seperti diatas gmana caranya?
on 07 May 2010 / 11:08
ivan bilang,
Wuih… orang jawa bilang “njlimet” artinya ribet… tapi nice tuttorial sir..:D lanjuuut…
on 10 May 2010 / 02:15
mahmud bilang,
tag untuk MENU belum dijelaskan diletakkan dimana…makasih
on 16 Aug 2010 / 03:14
kukuh bilang,
Mas klo nampilkan slide image di wordpress bagaimana. template scarlett-ku gak bisa tampil slider imagenya. mohon bantuannya
on 18 Aug 2010 / 14:34