Nov 13, 2008
Tutorial Cara Membuat Theme WordPress Sendiri ( Langkah #5 : Mendesain Theme Menggunakan CSS )
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
- Langkah #4 : Memuat Konten Blog Ke Dalam Theme
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 ).
Kemarin kita “memuat” konten ke dalam theme, dan theme tersebut sudah kita aktifkan. Masalahnya adalah, theme tersebut masih berupa halaman html “telanjang” yang polos hanya begitu saja.
Sekarang, kita akan me-desain halaman html theme yang polos itu menggunakan CSS. Maka dari itu, buka file index.php dan style.css theme latihantheme anda menggunakan Notepad ++, dan akses halaman dummy blog anda menggunakan browser.
Berkaitan dengan isu browser compatibility ( Setiap browser menggunakan cara yang berbeda dalam menampilkan styling CSS), gunakan browser FireFox untuk melakukan step ini. Internet Explorer tidak direkomendasikan. IE merupakan mimpi buruk bagi setiap web designer. nanti kita buat bagian khusus untuk mengatasi IE
Sebelum memulai, baca dulu penjelasan tentang Apa itu CSS di halaman ini.
Dalam mendesain menggunakan css, anda akan sangat familiar dengan tag <div> yang disertai dengan atribut id atau class.
Apa, untuk apa, dan bagaimana tag <div> itu bekerja?
tag div merupakan tag dalam bahasa html, yang berfungsi untuk mendefinisikan area tertentu. Sederhananya, menandai area tertentu. Area dalam tag div tersebut lalu diberi nama oleh atribut class atau id seperti ini : <div id=”area”> atau <div class=”area”>, dan lalu area class atau id bernama area tersebut akan di styling / diberi gaya oleh file CSS.
Penting untuk diperhatikan : seperti tag html lainnya, tag <div> pun perlu ditutup menggunakan tag penutup : </div>
Sekarang, langsung praktek :
Langkah 5.0 : mendefinisikan style halaman secara keseluruhan :
pada style.css, ketik / copypaste kode ini :
body{
margin:0px;
font-family: Verdana,Arial,Helvetica,sans-serif;
color: #333333;
font-size:11.4px;
line-height:1.58em;
vertical-align: baseline;
background:#D0BFA5;
}
Penjelasan :
- body{} : mendefinisikan tag <body>. jika menuliskan sesuatu tanpa karakter # atau ., berarti kita mendefinisikan tag yang kita tulis. body{} berarti mendefinisikan tag <body> hingga </body>
- font-family : mendefinisikan font apa yang digunakan untuk teks yang berada dalam area body tersebut. fon-family ini ditulis secara hierarkis. maknanya, jika Verdana tidak ada pada komputer pengakses web, digunakan lah font Arial.
- color : mendefinisikan warna apa yang akan digunakan untuk font pada area tersebut. definisi warna menggunakan kode heksa.
- font-size: mendefinisikan ukuran font pada area yang didefinisikan.
- line-height: mendefinisikan jarak antar baris pada font di area yang didefinisikan
- vertical-align : mendefinisikan align – vertical font pada area yang didefinsikan
Langkah 5.1 : div global untuk mendefinisikan seluruh konten theme dan membuatnya berada di tengah halaman
pada index.php :
persis setelah tag <body>, ketik / copypaste tag ini : <div id=”kontainer”>
persis sebelum tag <body>, ketik / copypaste tag ini : </div>
ketik / copypaste script ini pada style.css :
#kontainer{
width:780px;
margin:0 auto 0 auto;
}
Penjelasan :
- #kontainer pada style.css : # menunjukan id, dan kontainer menunjukan nama id yang didefinisikan
- width : mendefinisikan lebar dari id. width:780px; berarti width dari id tersebut 780 piksel
- px disini artinya piksel. wajib ditulis setelah nilai atribut yang sifatnya jarak. kalau tidak ditulis, tidak akan bekerja.margin : atribut css untuk mendefinisikan jarak antara div yang satu ke div yang lainnya.
- margin:jarakluaratas jarakluarkanan jarakluarbawah jarakluarkiri; ( searah jarum jam )
NOTE : perhatikan cara penulisan css. setelah atribut dan nilai dituilis, selalu ikuti dengan ;. width:100%;
Langkah 5.2 : div global untuk “mem-float” halaman.
pada index.php :
persis setelah tag <div id=”kontainer”>, ketik / copypaste tag ini : <div id=”dalamkontainer”>
persis sebelum tag </div>, ketik / copypaste tag ini : </div>
pada style.css :
ketik / copypaste script ini :
#dalamkontainer{
float:left;
padding:10px;
width:760px;
background:#fff;
}
Penjelasan :
- Float memiliki fungsi vital dalam web design menggunakan CSS. Fungsinya adalah untuk “memampatkan dan meratakan” area. Area yang dimampatkan ini memiliki nilai height dan width secara otomatis, dan hal ini lah yang membuat design web dengan css fleksibel.
Bingung? ya sudah, ikut saja dulu. Nanti juga paham seiring dengan pengalaman kok
- float: atribut css untuk “memampatkan” dan “meratakan” area. float:left; berarti di float ke kiri
- padding : atribut css untuk mendefinisikan jarak antara div ke dalam kontennya.
- padding:jarakdalamatas jarakdalamkanan jarakdalambawah jarakdalamkiri; ( searah jarum jam )
- background : mendefinisikan latar belakang. kalau untuk memanggil warna, menggunakan kode heksa. kode heksa adalah kode enam digit yang diawali dengan karakter # untuk mendefinisikan warna pada browser
NOTE :
kalau ditulis hanya sekali saja, seperti : padding:10px; , berarti padding atas-kanan-bawah-kiri semuanya sama, 10px
px disini artinya piksel. wajib ditulis setelah nilai atribut yang sifatnya jarak. kalau tidak ditulis, tidak akan bekerja.
Langkah 5.3 : Mendefinisikan & Memberi Desain untuk Area Header
pada index.php :
persis SEBELUM tag <h1><a href=”<?php echo get_option(‘home’); ?>/”><?php bloginfo(‘name’); ?></a></h1>, ketik / copypaste tag ini : <div id=”kepala”>
persis SETELAH tag <?php bloginfo(‘description’); ?>, ketik / copypaste tag ini : </div>
pada style.css :
ketik / copypaste script ini :
#kepala{
float:left;
width:740px;
padding:10px;
background:#7F663F;
color:#fff;
}
Langkah 5.4 : Mendefinisikan & Memberi desain untuk top menu.
nah, yang ini agak tricky. Seperti yang sudah dibahas kemarin, “kok membuat menu horisontal menggunakan tag <ul> dan <li> sih? jadi list bullet style yang vertikal itu dong?”. Well, mari lihat yang satu ini :
pada index.php :
persis SEBELUM tag <ul><li class=”first”><a href=”<?php echo get_option(‘home’); ?>/”>Home</a></li>, ketik / copypaste tag ini : <div id=”menuatas”>
persis SETELAH tag <?php wp_list_pages(‘sort_column=menu_order&depth=1&title_li=’);?></ul>, ketik / copypaste tag ini : </div>
pada style.css :
ketik / copypaste script ini :
#menuatas{
width:780px;
float:left;
color:#fff;
background:#5F3C00;
}
#menuatas ul{
list-style:none;
margin:0;
padding:0;
}
Penjelasan :
- script ini mendefinisikan area unordered lis <ul> yang berada di #menuatas.
- list-style:none berarti meniadakan icon list.
#menuatas ul li{
float:left;
display:inline;
padding:5px 10px 5px 10px;
margin:0;
border-right:1px solid #e2e2e2;
}
Penjelasan :
- script ini mendefinisikan SETIAP ITEM LIST <li> yang berada di area unordered list <ul> #menuatas
- float:left; meratakan item <li> kesamping dan “memampatkannya”, sehingga list item secara otomatis memiliki definisi height memiliki nilainya sesuai dengan parameter yang lain.
- display:inline; mendefinisikan list item agar BERJEJER KESAMPING, bukan kebawah seperti definisi defaultnya ( display:inline secara bahasa artinya tunjukan dalam satu garis. hehe
). - border-right : garis di samping kanan pada area yang diberi definisi
Langkah 5.5 : Mendefinisikan area body
Pada index.php :
persis SEBELUM tag <?php if(have_posts()):?>, ketik / copypaste tag ini : <div id=”badan”>
persis SETELAH tag <?php endif; ?>, ketik / copypaste tag ini : </div>
Pada style.css :
ketik / copypaste script ini :
#badan{
float:left;
width:500px;
}
Langkah 5.6. mendefinisikan area sidebar
Pada index.php :
persis SEBELUM tag <?php dynamic_sidebar(1);?>, ketik / copypaste tag ini : <div id=”barsisi”>
persis SETELAH tag <?php dynamic_sidebar(1);?>, ketik / copypaste tag ini : </div>
Pada style.css :
ketik / copypaste script ini :
#barsisi{
float:left;
width:240px;
padding:10px;
margin:10px 0 0 0;
background:#efefef;
}
Langkah 5.7 : merapihkan sidebar.
Sidebar disusun atas tag <ul> dan <li>. dampaknya? item sidebar jadi ada bullet listnya dan margin – paddingnya menggunakan margin-padding default tag <ul> dan <li>. sekarang akan kita rapihkan.
Pada style.css :
ketik / copypaste script ini :
#barsisi li{
list-style:none;
}
#barsisi li ul{
padding:0px;
list-style:asterix;
}
#barsisi li ul li {
margin:0 0 0 15px;
}
Penjelasan :
setiap tag, termasuk <ul> dan <li> memiliki style dan nilai padding-marginnya sendiri. Itulah sebabnya terkadang tanpa kita definisikan stylenya, sebuah halaman html memiliki style sendiri. contoh : link berwarna biru. link yang sudah dikunjungi berwarna ungu.
Langkah 5.8 : styling caption dan image ( untuk versi 2.5 keatas )
Dalam membuat theme, ada beberapa bagian yang dalam pengembangannya sudah ada dan tinggal gunakan saja, tanpa mengulik lebih jauh. Mengapa melakuykan hal ini? karena ada beberaa hal mendasar yang termasuk sistem, yang akan sangat panjang jika dijelaskan. Dan caption & image ini termasuk kedalamnya. Just simply copy and paste. Styling image & caption ini saya modifikasi dari theme kubrick yang menjadi default theme wordpress.
Ketik / CopyPaste script ini pada style.css :
/* ----------------------------------Begin Images---------------------------------*/
p img {
padding: 0;
max-width: 100%;
}
img.centered {
display: block;
margin-left: auto;
margin-right: auto;
}
img.alignright {
padding: 4px;
margin: 0 0 2px 7px;
display: inline;
}
img.alignleft {
padding: 4px;
margin: 0 7px 2px 0;
display: inline;
}
.alignright {
float: right;
}
.alignleft {
float: left
}
/* End Images */
/* -----------------------------------------Captions---------------------------------*/
.aligncenter,
div.aligncenter {
display: block;
margin-left: auto;
margin-right: auto;
}
.wp-caption {
background-color:#EAE9E9;
text-align: center;
padding-top: 4px;
margin: 10px;
-moz-border-radius: 5px;
-khtml-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.wp-caption img {
border:0;
margin: 0;
padding: 0;
}
.wp-caption p.wp-caption-text {
font-size: 11px;
line-height: 17px;
padding: 0 4px 5px;
margin: 0;
}
/* End captions */
Untuk mengganti warna caption, rubah background-color pada .wp-caption
Well, selesai sudah styling area pada file index.php. namun masih ada yang kurang nyaman.
Yup, link – link yang ada masih menggunakan tampilan default : link biru dengan dekorasi garis bawah yang berubah menjadi ungu jika link tersebut telah di buka.
langkah 5.9 : Styling link
pada style.css, ketik / copypaste kode ini :
a, a:visited{
color:#CF830C;
text-decoration:none;
}
a:hover{
text-decoration:underline;
}
- anda bisa menggunakan atribut yang sama untuk dua area yang berbeda. Caranya, gunakan koma : a, a:visited{} berarti atribut dan nilai tersebut berlaku untuk a dan a:visited
- a:visited berarti tag link <a href=”"> yang sudah di kunjungi ( visited )
- a:hover berarti tag link <a href=”"> yang di hover / dilewati oleh kursor
Waw!sebuah post yang cukup panjang. Akhirnya beres sudah styling halaman index.php oleh style.css. ini screenshot hasilnya :

screenshot hasil latihantheme
Pada post berikutnya akan dijelaskan mengenai pembuatan kerangka halaman yang lain, sesuai dengan hirarki theme wordpress. Umumnya, kerangka – kerangka halaman lain tersebut juga desainnya didefinisikan oleh style.css. Tapi bisa juga di definisikan oelh css lain jika dibutuhkan.
anyway, ini script index.php dan style.css lengkapnya:
index.php
<!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>
<div id="kontainer">
<div id="dalamkontainer">
<div id="kepala">
<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>
<?php bloginfo('description'); ?>
</div>
<div id="menuatas">
<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>
</div>
<div id="badan">
<?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 if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
</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; ?>
</div>
<div id="barsisi">
<?php dynamic_sidebar(1);?>
</div>
</div>
</body>
</html>
style.css
/*
Theme Name: Theme Latihan
Theme URL: http://www.bloggingly.com
Description: Theme untuk latihan
Version: 0.1
Author: Nama Saya
Author URL: http://namabloganda.com
Tags: red, fixed width, two columns, widget ready
Theme ini di desain oleh <a href="http://namabloganda.com">Nama Anda</a>
*/
body{
margin:0px;
font-family: Verdana,Arial,Helvetica,sans-serif;
color: #333;
font-size:11.4px;
line-height:1.58em;
vertical-align: baseline;
background:#D0BFA5;
}
#kontainer{
width:780px;
margin:0 auto 0 auto;
}
#dalamkontainer{
float:left;
padding:10px;
width:760px;
background:#fff;
}
#kepala{
float:left;
width:740px;
padding:10px;
background:#7F663F;
color:#fff;
}
#menuatas{
width:760px;
float:left;
color:#fff;
background:#5F3C00;
}
#menuatas ul{
list-style:none;
margin:0;
padding:0;
}
#menuatas ul li{
float:left;
display:inline;
padding:5px 10px 5px 10px;
margin:0;
border-right:1px solid #e2e2e2;
}
#badan{
float:left;
width:500px;
}
#barsisi{
float:left;
width:240px;
padding:10px;
margin:10px 0 0 0;
background:#efefef;
}
#barsisi li{
list-style:none;
}
#barsisi li ul{
padding:0px;
list-style:asterix;
}
#barsisi li ul li {
margin:0 0 0 15px;
}
/* ----------------------------------Begin Images---------------------------------*/
p img {
padding: 0;
max-width: 100%;
}
img.centered {
display: block;
margin-left: auto;
margin-right: auto;
}
img.alignright {
padding: 4px;
margin: 0 0 2px 7px;
display: inline;
}
img.alignleft {
padding: 4px;
margin: 0 7px 2px 0;
display: inline;
}
.alignright {
float: right;
}
.alignleft {
float: left
}
/* End Images */
/* -----------------------------------------Captions---------------------------------*/
.aligncenter,
div.aligncenter {
display: block;
margin-left: auto;
margin-right: auto;
}
.wp-caption {
background-color:#EAE9E9;
text-align: center;
padding-top: 4px;
margin: 10px;
-moz-border-radius: 5px;
-khtml-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.wp-caption img {
border:0;
margin: 0;
padding: 0;
}
.wp-caption p.wp-caption-text {
font-size: 11px;
line-height: 17px;
padding: 0 4px 5px;
margin: 0;
}
/* End captions */
a, a:visited{
color:#CF830C;
text-decoration:none;
}
a:hover{
text-decoration:underline;
}
Well, 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

F@tM@ bilang,
Top abizzzzzz.
on 14 Nov 2008 / 20:05
F bilang,
Waw, thanks.
iya nih teh, buatin theme teh g sempet terus. Ya sudah, saya buat tutorial nya saja
on 14 Nov 2008 / 20:08
Tutorial Cara Membuat Theme Wordpress Sendiri ( Langkah #6 : Merapihkan Styling CSS ) | Bloggingly | a blog about blog, blogging, and blogger bilang,
[...] Langkah #5 : Mendesain Theme Menggunakan CSS [...]
on 14 Nov 2008 / 21:06
8 Langkah Membuat Theme Wordpress | fikrirasyid.com bilang,
[...] Langkah #5 : Mendesain Theme Menggunakan CSS [...]
on 16 Nov 2008 / 16:54
miro hardiansyah bilang,
making teheme how…?
on 25 Nov 2008 / 18:45
F bilang,
Membuat theme? ikuti saja ke delapan langkah tutorial cara membuat theme sendiri ini
on 26 Nov 2008 / 05:16
astra bilang,
kok saya selalu mentok ya kalo mo utak atik wordpress..makanya ‘mainnya’ di blogspot terus.. tp tks loh tutorialnya. bloggingly udh saya bookmark
on 05 Dec 2008 / 09:31
zasa bilang,
Mas, salam kenal….
mo tanya nich..
klo menghilangkan/hidden judul blog lewat css bagaimana?
soalnya image header sudah ada tulisannya, jadi dobel/numpuk dech.
thanks.
on 31 Jan 2009 / 20:15
mymoen bilang,
Trimakasih mas untuk tutorialnya.. Membantu banget untuk newbee seperti saya…
on 23 Apr 2009 / 23:41
Fikri bilang,
@Mymoen
Sama-sama. Senang saya bisa membantu melalui apa yang saya ketahui. Senang juga blog ini bisa membantu anda
on 26 Apr 2009 / 16:08
konsultasi kesehatan bilang,
Mas…aq newbie….cara ganti warna area di luar blog kita , kodenya di mana ya????
makasih
on 08 Sep 2009 / 10:45
kank_ripay bilang,
nfo yang bermanfaa, terima kasih…
on 05 Oct 2009 / 03:05
Hangga Nuarta bilang,
Di CCSnya emang nggak ada class navigation ya Mas???
on 08 Nov 2009 / 13:03
pokehack bilang,
wah thanks bgt nih mas…
on 19 Nov 2009 / 07:57
dean_okay bilang,
Salam kenal
makasih yah…
postingan anda membantu tugas saya…
karena saya tidak paham sama sekali tentang css..
hehehe..
on 02 Jan 2010 / 19:05
Tips blog bilang,
Mantab tenan! berguna banget buat gw yg lagi belajar buat theme wp!
on 20 Mar 2010 / 10:44
Fikri bilang,
waw, nice to hear that.
selain disini, ada banyak juga tempat belajar membuat themes wordpress kok
on 25 Mar 2010 / 13:01
dedy bilang,
mantep.. kalo boleh tutorialnya template yang menggunakan background gambar donk, bukan hanya warna aja..:D..
on 08 Jul 2010 / 15:33
Reynold Learoyd Stowers bilang,
Ternyata simbol ” dan ” berbeda …
karena hal sekecil itu berbahya …
harus teliti …
thx mas tutornya …
on 12 Jul 2010 / 23:34
Reynold Learoyd Stowers bilang,
maaf double comment …
maksud saya di atas adalah …
jangan asal copy paste di notepad+++
contoh: coba copy paste ke notepad++ , dan coba tuliskan secara manual …
THX B4
on 12 Jul 2010 / 23:38
Fikri bilang,
hihi, ya memang berbeda. beda satu karakter saja bisa kacau
on 15 Jul 2010 / 21:47
yoh@ bilang,
Wah… thanks ya tutorialnya akan saya coba… Kebetulan saya juga suka menggambar nih… thx:)
on 30 Jul 2010 / 12:36
Fikri bilang,
silahkan dicoba. Lebih jelas mengenai web development bisa dilihat di htpp://outstando.com
on 31 Jul 2010 / 07:06
rio bilang,
gua gg bsa spa yg bsa bantu gua desain
on 11 Aug 2010 / 16:57