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
- Langkah #5 : Mendesain Theme Menggunakan CSS
- Langkah #6 : Merapihkan Styling CSS
Ok. Seperti pada post sebelumnya, awali dengan nyalakan XAMPP Control Panel, hidupkan Apache Server & Database MySQLnya, lalu buka aplikasi browser dan buka halaman wordpress lokal anda ( http://localhost/wordpress/ ).
Seperti yang sudah kami sebutkan pada langkah #1, mengenai struktur file Theme Wordpress : Theme wordpress terdiri dari berbagai file. Pada 7 langkah sebelumnya, kita telah menghasilkan 3 file inti dari theme wordpress : index.php, style.css, dan function.php.
Pada post kali ini, kita akan membuat file yang lainnya : header.php, comment.php, single.php, page.php, archive.php, dan search.php.
Sebentar, sepertinya ada yang terlewat. Bagaimana dengan footer.php dan home.php?
Well, karena pada latihantheme ini kita tidak menampilkan footer apapun, maka tidak kita butuhkan file footer.php ini. Sedangkan untuk home.php, karena settingan index.php sudah sesuai dengan apa yang kita butuhkan tampilan halaman depan, maka kita tidak membutuhkan home.php untuk latihantheme.
Ok, Langsung saja kita bahas satu persatu. buka browser dan akses localhost/wordpress, dan buka index.php menggunakan notepad ++.
membuat header.php
header.php merupakan file untuk mendefinisikan data – data pada header, lalu digunakan secara bersama oleh tiap file. gunanya? agar header tiap file dipastikan seragam. persis seperti konsep style.css : satu file yang mendefinisikan seluruh halaman, maka dari itu dibuat dalam file tersendiri, dan digunakan secara bersama – sama. tujuannya? agar tampilan seragam. begitu pula dengan header.
Kalau kita analisa, apa sih yang membedakan halaman ( yang standar y ) home, post, page, tag dan categories? hanya kontennya. Sidebar, header dan footernya sama. Maka dari itu, dari pada menduplikasi konten file, lebih baik tampilan yang sama ditulis dalam satu file terpisah dan script tersebut digunakan secara bersamaan oleh semua file. Enough for the theory. Sekarang praktek :
- buka file baru pada notepad ++.
- buka file index.php. select kode dari baris sesudah tag <meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″> hingga <?php wp_list_pages(’sort_column=menu_order&depth=1&title_li=’);?></ul></div>, lalu tekan CTR + X alias cut.
- Paste script yang tadi di cut ke file baru notepad++, lalu save dengan nama header.php
- Kembali ke file index.php. pada bagian yang tadi kita pindahkan scriptnya ke header.php, ketik / copypaste kode ini : <?php get_header(); ?>
Penjelasan : <?php get_header(); ?> merupakan tag wordpress yang berfungsi untuk me-LOAD seluruh script yang terdapat pada file
header.php
OK, sekarang, file header.php beres
Membuat comment.php
comment.php merupakan “kerangka” dari tampilan komentar : apa yang akan ditampilkan jika ada komentar, apa yang akan ditampilkan jika tidak ada komentar, dan apa yang ditampilkan jika sistem komentar blog anda membutuhkan pengunjung login terlebih dahulu. Sistem komentar yang akan kita gunakan ini saya ambil dari kerangka kubrick. Theme default bawaan wordpress.
Buat file baru pada notepad ++, copy paste script berikut dan save dengan nama comments.php :
<?php // Jangan menghapus baris ini!
if (!empty($_SERVER['SCRIPT_FILENAME']) && ‘comments.php’ == basename($_SERVER['SCRIPT_FILENAME']))
die (‘Please do not load this page directly. Thanks!’);if (!empty($post->post_password)) { // jika ada password
if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // dan passwordnya tidak sesuai dengan cookie, yang artinya pengunjung sedang tidak login. script ini yang akan muncul
?><p class=”nocomments”>Post ini di kunci. masukan password untuk membaca post ini</p>
<?php
return;
}
}/* variabel ini untuk membuat alternatif background comment*/
$oddcomment = ‘class=”alt” ‘;
?><!– Kerangka Comment dimulai dari sini –>
<?php if ($comments) : ?>
<h3 id=”comments”><?php comments_number(‘Tidak ada komentar’, ‘Satu Komentar’, ‘% Komentar’ );?> to “<?php the_title(); ?>”</h3><ol class=”commentlist”>
<?php foreach ($comments as $comment) : ?>
<li <?php echo $oddcomment; ?>id=”comment-<?php comment_ID() ?>”>
<?php echo get_avatar( $comment, 32 ); ?>
<cite><?php comment_author_link() ?></cite> Says:
<?php if ($comment->comment_approved == ‘0′) : ?>
<em>Your comment is awaiting moderation.</em>
<?php endif; ?>
<br /><small class=”commentmetadata”><a href=”#comment-<?php comment_ID() ?>” title=”"><?php comment_date(‘F jS, Y’) ?> at <?php comment_time() ?></a> <?php edit_comment_link(‘edit’,' ’,”); ?></small>
<?php comment_text() ?>
</li>
<?php
/* Membuat setiap komentar memiliki class yang berbeda */
$oddcomment = ( empty( $oddcomment ) ) ? ‘class=”alt” ‘ : ”;
?><?php endforeach; /* Akhir dari setiap komentar */ ?>
</ol>
<?php else : // Jika setting komentar enable namun tidak ada komentar, maka script dibawah ini dieksekusi ?>
<?php if (‘open’ == $post->comment_status) : ?>
<!– Jika sistem komentar enable, namun belum ada komentar yang masuk. –><?php else : // komentar di disable ?>
<!– Jika sistem komentar di disable, script ini yang muncul –>
<p class=”nocomments”>Tidak Menerima Komentar.</p><?php endif; ?>
<?php endif; ?><?php if (‘open’ == $post->comment_status) : ?>
<h3 id=”respond”>Berikan Komentar Anda</h3><!– Jika setting komentar membutuhkan pengunjung login terlebih dahulu untuk memberikan komentar, script ini dieksekusi–>
<?php if ( get_option(‘comment_registration’) && !$user_ID ) : ?>
<p>You must be <a href=”<?php echo get_option(’siteurl’); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>”>logged in</a> to post a comment.</p><!– Jika setting komentar terbuka, script ini dieksekusi –>
<?php else : ?>
<form action=”<?php echo get_option(’siteurl’); ?>/wp-comments-post.php” method=”post” id=”commentform”><!– Jika pengakses halaman sedang login, script ini yang dieksekusi–>
<?php if ( $user_ID ) : ?>
<p>Logged in as <a href=”<?php echo get_option(’siteurl’); ?>/wp-admin/profile.php”><?php echo $user_identity; ?></a>. <a href=”<?php echo get_option(’siteurl’); ?>/wp-login.php?action=logout” title=”Log out of this account”>Log out »</a></p><!– Jika pengakses alaman tidak sedang login, form ini yang muncul–>
<?php else : ?>
<p><input type=”text” name=”author” id=”author” value=”<?php echo $comment_author; ?>” size=”22″ tabindex=”1″ <?php if ($req) echo “aria-required=’true’”; ?> />
<label for=”author”><small>Nama <?php if ($req) echo “(required)”; ?></small></label></p><p><input type=”text” name=”email” id=”email” value=”<?php echo $comment_author_email; ?>” size=”22″ tabindex=”2″ <?php if ($req) echo “aria-required=’true’”; ?> />
<label for=”email”><small>E-Mail (tidak akan dipublikasikan) <?php if ($req) echo “(required)”; ?></small></label></p><p><input type=”text” name=”url” id=”url” value=”<?php echo $comment_author_url; ?>” size=”22″ tabindex=”3″ />
<label for=”url”><small>Website</small></label></p><?php endif; ?>
<!–<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>–>
<p><textarea name=”comment” id=”comment” cols=”100%” rows=”10″ tabindex=”4″></textarea></p>
<p><input name=”submit” type=”submit” id=”submit” tabindex=”5″ value=”Submit Comment” />
<input type=”hidden” name=”comment_post_ID” value=”<?php echo $id; ?>” />
</p>
<?php do_action(‘comment_form’, $post->ID); ?></form>
<?php endif; // endif jika butuh komentar membutuhkan registrasi dan belum login ?>
<?php endif; // hapus baris ini dan semuanya akan menjadi mimpi buruk?>
Wow. cukup panjang buka? kami tidak akan menjelaskan perintah2 yang terdapat pada comments.php karena itu akan membuat post ini menjadi terlalu panjang. Namun ketika anda sudah men-savenya di notepad ++ nanti, anda akan dapat melihat penjelasan dari tag, yang kami buat di file comments.php ( berwarna hijau )
Membuat single.php
single.php adalah file yang mendefinisikan apa saja yang akan di tampilkan pada halaman post ( halaman post adalah halaman yang menampilkan post dan komentarnya ). ketika anda mengakses halaman post, file ini yang digunakan sbagai kerangka halaman tersebut. Langsung saja langkahnya :
- buat file baru di notepad ++
- copypaste semua konten index.php ke file baru tersebut, lalu save dengan nama single.php
- hapus tag <?php comments_popup_link(‘No Comments’, ‘1 Comment’, ‘% Comments’); ?>. mengapa dihapus? karena pada post, metadata tentang jumlah komentar tidak akan ditampilkan
- ganti tag<div class=”navigation”><?php posts_nav_link(); ?></div> dengan <div class=”navigation”><?php previous_post_link(‘« %link’) ?><br /><?php next_post_link(‘ %link »’) ?></div>
- setelah tag yang tadi kita save, ketik / copypaste tag ini : <div id=”commentall”><?php comments_template(); ?></div> TEPAT SETELAH TAG YANG BARU KITA GANTI TADI lalu save.
single.php beres
Penjelasan :
- Tag pada poin ke 3 merupakan perintah untuk menampilkan jumlah komentar
- Tag pada poin ke 4 merupakan link ke post selanjutnya dan post sebelumnya, dengan link berupa judul post
- tag pada poin ke 5 merupakan perintah untuk me load comments.php pada halaman yang ada
Membuat page.php
page.php adalah file yang mendefinisikan apa saja yang akan ditampilkan pada halaman statis ( page ) wordpress. contoh : halaman about me. Ok, langsung saja langkah pembuatannya :
- buat file baru di notepad ++ ( ctr + n )
- copypaste semua konten single.php ke file baru tersebut, lalu save dengan nama page.php
- hapus tag <?php _e(‘Category :’); ?> <?php the_category(‘, ‘) ?> <?php _e(‘| ‘);?> <?php the_tags(); ?> <?php _e(‘| ‘);?>. Mengapa dihapus? karena halaman statis wordpress tidak memiliki category dan tags
- ganti <?php previous_post_link(‘« %link’) ?><br /><?php next_post_link(‘ %link »’) ?> dengan <?php link_pages(‘<p><strong>Pages:</strong> ‘, ‘</p>’, ‘number’); ?>
- Save. page.php beres.
Penjelasan :
- tag <?php the_category(‘,’ )?> merupakan tag untuk memanggil category dari post
- tag <?php the_tags();?> merupakan tag untuk memanggil tags dari post
- tag pada poin ke 4 merupakan tag untuk memanggil link jika halamana post di “break this post”
Membuat archive.php
archive.php adalah file yang mendefinisikan apa saja yang akan ditampilkan pada bagian archive, tag, dan category. Lankah cukup sederhana :
- buat file baru di notepad ++ ( Ctr + N )
- copypaste semua konten index.php, ingat y, index.php, ke file baru tersebut. Lalu save dengan nama archive.php
- ganti tag <?php the_content(); ?> dengan <?php the_excerpt(); ?>
- Save. archive.php beres
Penjelasan :
- tag pada poin ke 3 merupakan tag untuk memanggil excerpt / ringkasan dari post yang dimaksud
Membuat search.php
search.php adalah file yang mendefinisikan apa – apa yang tampil pada halaman “hasil pencarian”. Well, yang satu ini cukup mudah :
- buat file baru di notepad ++ ( Ctr + N )
- Copypaste semua konten archive.php, lalu save dengan nama search.php
- ketik / copypaste tag <h2>Hasil Pencarian Untuk “<span><?php echo $s; ?></span>”</h2> tepat setelah tag <?php if(have_posts()):?>
- Ganti tag ini : <?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>”); ?> dengan <?php _e(“Tidak ada halaman yang sesuai untuk kata kunci”); ?> “<?php echo $s; ?>”
search.php beres
Penjelasan :
tag pada poin ke 3, <?php echo $s; ?> merupakan tag untuk memanggil keyword yang digunakan untuk pencarian
tag pada poin ke 4 merupakan tag untuk memanggil kalimat yang disetting untuk keluar jika pencarian tidak menghasilkan apa – apa
Membuat screenshot latihantheme
Agar sebuah theme memiliki preview ketika di lihat dari dashboard admin wordpress, Sebuah theme perlu memiliki sebuah file image bernama snapshot dengan ukuran 300 X 250 piksel. jenis file bisa .png, jpg, atau gif. Kami mengcapture tampilan latihantheme menggunakan add ons firefox bernama screengrab, lalu meresizenya menggunakan microsoft office picture manager, lalu di letakan di direktori latihantheme. Yup, Sesederhana itu.
***
Wohooo!!! akhirnya selesai sudah Seri Tutorial Cara Membuat Theme Wordpress Sendiri ini. Satu pekan yang panjang eh?
Beberapa dari anda mungkin merasa bahwa panduan yang disajikan oleh seri tutorial ini tidak lengkap. Well, dengan senang hati saya mengatkana bahwa ya, memang benar seri tutorial ini sengaja hanya menampilkan dasarnya saja. Mengapa? karena kebutuhan tiap orang akan theme wordpress berbeda. Maka dari itu, seri ini hanya menampilkan dasarnya saja.
Lalu, jika saya ingin menampilkan sesuatu pada theme saya dan saya belum tahu caranya serta tidak dibahas pada tutorial ini bagaimana dong?
Pertanyaan bagus. Cara yang saya gunakan untuk mengatasi ini : cari theme yang secara struktur menampilkan apa yang kita butuhkan, lalu download theme tersebut. Setelah di download, “bedah” theme tersebut, dan cari tahu tag / script apa yang digunakan theme tersebut untuk menampilkan konten2 tertentu.
atau, mungkin kami bisa membantu? silahkan kontak melalui contact form saja.
Anyway, hasil dari tutorial membuat theme ini, anda bisa download latihantheme disini :
[Download not found]
P.S. : Kalau menemukan bug, tolong di laporkan ke bloggingly y! thanks ![]()
Ok, Tutorial cara membuat theme wordpress sendiri SELESAI sampai disini.
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
Salam kenal sebelumnya….
Saya ingin ganti header, sudah mengikuti contoh yg diatas, tapi scriptnya ada yang berbeda… gimana yaaa???
Ini yg punya saya:
<meta http-equiv=”Content-Type” content=”; charset=” />
ganti header?
tadi kami sudah lihat blog anda. kurang lebih begini caranya :
upload file header yang baru ke direktori images theme yang sudah anda gunakan. misalkan : http://pyuriko.com/wp-content/themes/namatheme/images
setelah itu edit file style.cssnya. bisa melalui dashboard > design > theme editor
edit line yang ini :
#logo {
background: url(‘images/r.jpg’) no-repeat;
height: 255px;
width: 800px;
margin-right: auto;
margin-left: auto;
margin-bottom: 20px;
}
nama file r.jpg ganti dengan nama file header yang baru. lalu save changes.
coba lihat tampilan blog anda sekarang.
Salam kenal..
Tutorial yang luarr biasa..
Sangat mudah dimengerti, kendati oleh newbie WP seperti saya.
Makasih ya..
Semoga tidak akan pernah bosen berbagi tutorial dengan Blogger2 lain
Waw, terima kasih. Masukan dari anda membuat saya semangat lagi menulis apa yang saya ketahui
makasih mas tutorial nya berguna banget, semoga tulisan-tulisan anda selalu dipergunakan dengan semestinya
tutorialnya keren banget…
Kalo buat theme wp yang 3 kolom gimana ya?
Maklum nih masih newbie dalam wp.
Thanks..
Mas Tambah sip aja nih.aku juga coba lho tutorialnya.
tapi aku mau nanya bisa gak archive kita taruh di bawah (gak di sidebar) misal. sidebar hanya untuk about me. dan kotak archive tan lain2 dibawah postingan kita atau diatas footer.
Waw, senang bisa membantu. Tentu saja bisa. Sidebar bisa di letakkan sesuka kita kok. hanya faktor estetis saja harus di perhatikan.
Lihat saja blog saya di http://fikrirasyid.com. Sidebarnya di bawah post kan?
aq ijin copy matei wordpressmu 1- makasih banget sangat berguna….bagi orang banyak….keep kindness bro Master bless u
@Noz
Silahkan di copy , tapi harap di sertakan source dan link balik ke artikel asli y.
mas sekalian untuk theme blogpsot yang kode xml tolong diberikan tutorialnya juga. trims
Tutorialnya bagus n komplit…
thank U…
itu ntr klo dah semua … kita kompress dulu ya ntr baru di instal di wprdpress nya
ass.wr.wb.
salam kenal bang fikri..
salut buat bang fikri yg udah kasih dasar2 pembuatan themes wp ini..
tutorial ini sangat membantu..
arigatou gozamas.. ^_^
Ini tutorial yang bagus, padat dan singkat. Ditambah lagi, anda menambahkan bahasa anda sendiri (bukan terjemahan bahasa inggrisnya langsung seperti di blog lain yang pernah saya lihat – malah bikin pusing bacanya). Saya sudah pernah praktekkan yang di wpdesignercom. Sayang, tutorialnya berhenti di membuat comment.
Kapan nih posting advance technique untuk membuat themes wordpress sendiri?
senang bisa membantu
sudah ada rencana untuk membuat blog tentang web development malah. ditunggu saja rilisnya ya
ini tutorial yang aku cari slama ini…
mas… mau tanya.. saya mau ada gambar yang selalu ada di atas blog kita walaupun sedang discroll.. seperti side bar yang fikrirasyid.com…
mohon bantuannya…
thank’s sebelum..
@perin
oh, seperti yang di blog saya? itu sih diatur menggunakan CSS. position:fixed kalo ngga salah