Cekerholic

Personal Playground of Aris FM

5 Theme WordPress Minimalis Terbaik

Update: Theme WordPress gratis dari IA yang benar bernama The Ideal Website. Terima kasih buat Ardianzzz yang telah memberikan koreksi.

Sebagai pengguna WordPress dan penyuka desain minimalis, saya sering mencari theme WordPress dengan desain minimalis sebagai referensi dan inspirasi. Saat ini terdapat banyak sekali theme WordPress dengan desain minimalis, baik yang gratis maupun yang premium. Cukup dengan mengetikkan keyword “minimalist wordpress theme” di Google maka akan muncul ratusan ribu hasil.

Dari sekian banyak theme WordPress berdesain minimalis, saya menemukan beberapa theme gratis yang benar-benar bagus dan menarik. Inilah 5 theme WordPress terbaik menurut saya :

1. Modern-Clix

Modern Clix
Theme WordPress buatan seorang desainer asal Argentina, Rodrigo Galindez, salah satu desainer idola saya. Theme ini terdiri dari 3 kolom dengan komposisi warna yang kontras, hitam dan putih. Anchor text (tautan) juga berwarna hitam tetapi dibuat tebal (bold) dan akan berubah warna ketika di-hover, sedikit mengurangi aksesibilitas memang. Tetapi secara umum theme ini tetap kelihatan sangat menarik.

Link demo dan download http://rodrigogalindez.com/themes/modern-clix/

read full post »

§

WordPress Tips: Modifikasi Widget Tag Cloud

04 Nov 2010 Wordpress 16 Comments

Widget tag cloud (awan tag) adalah sebuah fitur WordPress yang cukup sering dipakai di blog-blog berbasis WordPress. Fitur ini sudah ada sejak WordPress versi 2.3.

contoh tag cloud

Tampilan Tag Cloud standar

Fitur ini menurut saya memiliki beberapa kekurangan, diantaranya adalah:

  • Unit font size default-nya memakai pt (point) yang sudah jarang sekali dipakai di desain modern
  • Jumlah tag yang tampil secara default adalah 45 (kecuali jumlah tag dalam blog kurang dari 45), menurut saya itu terlalu banyak dan sayangnya tidak ada pengaturannya dalam opsi widget
  • Tag yang tampil diurutkan berdasarkan nama secara alfabetik, menurut saya lebih baik kalau tag yang tampil diurutkan dari yang paling populer dan acak (seperti awan yang selalu berubah bentuk)

read full post »

§

Konversi Desain dari Photoshop ke Theme WordPress

Tutorial ini adalah kelanjutan dari 2 tutorial sebelumnya di situs Desain Digital, yaitu Mendesain Blog Elegan dengan Photoshop dan dilanjutkan dengan memotong PSD atau slicing. Di tutorial ini kita akan mengubah hasil desain menjadi theme WordPress. Kita akan berkenalan dengan HTML5 dan beberapa efek CSS3 seperti box shadow, text shadow, dan rounded corner.

Preview

Di bawah adalah hasil akhir tutorial. Sedikit berbeda dengan mockup PSD awal karena ada penambahan widget di bagian footer. Klik gambar untuk melihat live demo-nya.

Mendesain Blog Elegan Bag. 3 - Konversi ke Theme WordPress

read full post »

§

WordPress Tips: Membuat Form Kontak tanpa Plugin

25 Oct 2010 Wordpress 11 Comments

Dalam sebuah blog biasanya terdapat halaman kontak untuk menghubungi pemilik blog tersebut. Bagi pengguna WordPress, ada cukup banyak plugin untuk membuat/menampilkan form kontak seperti Contact Form 7, Super Contact Form dan lain-lain. Silakan anda cari sendiri di Directory Plugin WordPress.

Nah gimana kalau kita bikin sendiri aja? Caranya gamnpang kok. Silakan ikuti tutorial berikut.

Langkah 1: Membuat Page Template Form Kontak
Buatlah sebuah file baru di direktori theme WordPress anda dan beri nama “form-kontak.php”. Kemudian buka file yang kita buat dan masukkan baris kode berikut:

<?php
	/* Template Name: Form Kontak */
?>

Langkah 2: Membuat the_loop() dari Form Kontak
Setiap post template WordPress harus menggunakan template tag the_loop() agar bisa menampilkan konten dari halaman. Jadi sekarang mari kita buat the_loop()-nya dulu. Silakan masukkan kode berikut :

<?php get_header(); //Memanggil header.php (header blog) ?>
<div id="kontak"><!--Kontak Wrapper-->
	<?php if (have_posts()) : ?>
	<?php while (have_posts()) : the_post(); ?>
		<h1><?php the_title(); ?></h1>
			<?php the_content(); //Akhir the_loop ?>
	<?php endwhile; ?>
	<?php endif; ?>
</div><!--Akhir Kontak Wrapper-->
<?php get_footer(); //Memanggil footer.php (footer blog) ?>

Langkah 3: Membuat Form Komentar
Kode pada langkah 2 adalah kode standar dari setiap post template WordPress (single.php, index.php, archives.php, dan search.php), sekarang kita mulai masuk bagian inti, yaitu membuat form komentar. Oke sekarang masukkan kode berikut di bawah <?php the_content(); //Akhir the_loop ?>

	<!-- Form Komentar -->
	<form action="<?php the_permalink(); ?>" id="contactForm" method="post">
		<p>Silakan menghubungi saya via form kontak berikut ini</p><!-- Kata pembuka yang ditampilkan di bagian atas form komentar -->
			<p><label for="contactName">Name</label>
				<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField" />
				<?php if($nameError != '') { ?>
					<span class="error"><?=$nameError;?></span> 
				<?php } ?>
			</p>
			<p><label for="email">Email</label>
				<input type="text" name="email" id="email" value="<?php if(isset($_POST['email']))  echo $_POST['email'];?>" class="requiredField email" />
				<?php if($emailError != '') { ?>
					<span class="error"><?=$emailError;?></span>
				<?php } ?>
			</p>
			<p class="textarea"><label for="commentsText">Pesan</label>
				<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
					<?php if($commentError != '') { ?>
						<span class="error"><?=$commentError;?></span> 
					<?php } ?>
			</p>
				<p class="inline"><input type="checkbox" name="sendCopy" id="sendCopy" value="true"<?php if(isset($_POST['sendCopy']) && $_POST['sendCopy'] == true) echo ' checked="checked"'; ?> /><label for="sendCopy">Kirim salinan pesan ini ke email Anda</label></p>
				<p class="screenReader"><label for="checking" class="screenReader">Biarkan seperti ini!</label><input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($_POST['checking']))  echo $_POST['checking'];?>" /></p><!--Chaptca rahasia-->
				<p class="buttons"><input type="hidden" name="submitted" id="submitted" value="true" /><button type="submit">Kirim &raquo;</button></p>
	</form>

Langkah 4: Mengatur Fungsi Form
Kita sudah memiliki form komentar, tapi belum berfungsi apa-apa karena pengaturan form kontaknya belum dibuat. Sekarang kita atur dulu fungsi form, masukkan kode berikut di atas template tag <?php get_header(); //Memanggil header.php (header blog) ?> :

<?php 
//Mengecek apakah isi form sudah dikirim
if(isset($_POST['submitted'])) {
 
	//Mengecek apakah chaptcha rahasia terisi
	if(trim($_POST['checking']) !== '') {
		$captchaError = true;
	} else {
 
		//Mengecek apakah kolom nama sudah diisi
		if(trim($_POST['contactName']) === '') {
			$nameError = 'Silakan isi nama Anda terlebih dahulu'; //Pesan error jika kolom nama kosong
			$hasError = true;
		} else {
			$name = trim($_POST['contactName']);
		}
 
		//Mengecek apakah kolom alamat email sudah diisi dan valid
		if(trim($_POST['email']) === '')  {
			$emailError = 'Anda lupa memasukkan alamat email anda';//Pesan error jika kolom email kosong
			$hasError = true;
		} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
			$emailError = 'Alamat email yang Anda masukkan salah';//Pesan error jika alamat email tidak valid
			$hasError = true;
		} else {
			$email = trim($_POST['email']);
		}
 
		//Mengecek apakah kolom isi pesan sudah disi
		if(trim($_POST['comments']) === '') {
			$commentError = 'Apakah anda mau mengirim pesan kosong? silakan diisi dulu pesan anda';//Pesan error jika kolom pesan masih kosong
			$hasError = true;
		} else {
			if(function_exists('stripslashes')) {
				$comments = stripslashes(trim($_POST['comments']));
			} else {
				$comments = trim($_POST['comments']);
			}
		}
 
		//Mengirimkan pesan, jika semua kolom telah diisi dengan valid
		if(!isset($hasError)) {
 
			$emailTo = 'name@domain.com';//Alamat email tujuan, ganti dengan email anda
			$subject = 'Pesan via blog dari '.$name;//Judul pesan yang masuk ke email kita dari form kontak
			$sendCopy = trim($_POST['sendCopy']);//Opsi untuk mengirimkan salinan pesan kepada pengirim
			$body = "Name: $name \n\nEmail: $email \n\nPesan anda: $comments";//Isi Email
			$headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;//Header email
 
			mail($emailTo, $subject, $body, $headers);
 
			if($sendCopy == true) {
				$subject = 'Salinan pesan anda di blog Cekerholic';//Judul pesan salinan kepada pengirim apabila checkbox kirim salinan dicentang
				$headers = 'From: Blog Aris FM <name@domain.com>';//Header email pesan salinan, silakan diedit nama dan alamat emailnya
				mail($email, $subject, $body, $headers);
			}
 
			$emailSent = true;
 
		}
	}
} ?>

Sekarang form kontak kita sudah berfungsi, masih ada beberapa langkah lagi agar form kontak semakin sempurna.

Langkah 5: Membuat pemberitahuan bahwa pesan yang dikirim telah sampai
Pengirim pesan tentu penasaran apakah pesan yang dikirimnya sampai atau tidak, untuk itu kita perlu menampilkan pemberitahuan bahwa pesan mereka telah terkirim atau tidak, silakan masukkan kode berikut di bawah kode <div id="kontak"><!--Kontak Wrapper-->

<?php if(isset($emailSent) && $emailSent == true) { ?>
 
		<h1>Terima kasih, <?=$name;?></h1>
		<p>Pesan Anda telah terkirim, saya akan segera membalasnya secepat mungkin :)</p>
 
<?php } else { ?>

dan kode berikut di atas baris <!-- Form Komentar -->

<?php if(isset($hasError) || isset($captchaError)) { ?>
		<p class="error">Maaf, tampaknya ada masalah dalam mengirim pesan Anda, silakan dicoba lagi<p>
	<?php } ?>

terakhir masukkan kode berikut ini di atas tag </div><!--Akhir Kontak Wrapper-->

<?php } ?>

Berikut hasil akhir dari Form Kontak yang baru kita buat:

<?php
	/* Template Name: Form Kontak */
?>
 
<?php 
//Mengecek apakah isi form sudah dikirim
if(isset($_POST['submitted'])) {
 
	//Mengecek apakah chaptcha rahasia terisi
	if(trim($_POST['checking']) !== '') {
		$captchaError = true;
	} else {
 
		//Mengecek apakah kolom nama sudah diisi
		if(trim($_POST['contactName']) === '') {
			$nameError = 'Silakan isi nama Anda terlebih dahulu'; //Pesan error jika kolom nama kosong
			$hasError = true;
		} else {
			$name = trim($_POST['contactName']);
		}
 
		//Mengecek apakah kolom alamat email sudah diisi dan valid
		if(trim($_POST['email']) === '')  {
			$emailError = 'Anda lupa memasukkan alamat email anda';//Pesan error jika kolom email kosong
			$hasError = true;
		} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
			$emailError = 'Alamat email yang Anda masukkan salah';//Pesan error jika alamat email tidak valid
			$hasError = true;
		} else {
			$email = trim($_POST['email']);
		}
 
		//Mengecek apakah kolom isi pesan sudah disi
		if(trim($_POST['comments']) === '') {
			$commentError = 'Apakah anda mau mengirim pesan kosong? silakan diisi dulu pesan anda';//Pesan error jika kolom pesan masih kosong
			$hasError = true;
		} else {
			if(function_exists('stripslashes')) {
				$comments = stripslashes(trim($_POST['comments']));
			} else {
				$comments = trim($_POST['comments']);
			}
		}
 
		//Mengirimkan pesan, jika semua kolom telah diisi dengan valid
		if(!isset($hasError)) {
 
			$emailTo = 'name@domain.com';//Alamat email tujuan, ganti dengan email anda
			$subject = 'Pesan via blog dari '.$name;//Judul pesan yang masuk ke email kita dari form kontak
			$sendCopy = trim($_POST['sendCopy']);//Opsi untuk mengirimkan salinan pesan kepada pengirim
			$body = "Name: $name \n\nEmail: $email \n\nPesan anda: $comments";//Isi Email
			$headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;//Header email
 
			mail($emailTo, $subject, $body, $headers);
 
			if($sendCopy == true) {
				$subject = 'Salinan pesan anda di blog Cekerholic';//Judul pesan salinan kepada pengirim apabila checkbox kirim salinan dicentang
				$headers = 'From: Blog Aris FM <name@domain.com>';//Header email pesan salinan, silakan diedit nama dan alamat emailnya
				mail($email, $subject, $body, $headers);
			}
 
			$emailSent = true;
 
		}
	}
} ?>
 
<?php get_header(); //Memanggil header.php (header blog) ?>
<div id="kontak"><!--Kontak Wrapper-->
 
	<?php if(isset($emailSent) && $emailSent == true) { ?>
		<h1>Terima kasih, <?=$name;?></h1>
		<p>Pesan Anda telah terkirim, saya akan segera membalasnya secepat mungkin :)</p>
	<?php } else { ?>
 
	<?php if (have_posts()) : ?>
	<?php while (have_posts()) : the_post(); ?>
		<h1><?php the_title(); ?></h1>
			<?php the_content(); //Akhir the_loop ?>
 
		<?php if(isset($hasError) || isset($captchaError)) { ?>
			<p class="error">Maaf, tampaknya ada masalah dalam mengirim pesan Anda, silakan dicoba lagi<p>
		<?php } ?>
				<!-- Form Komentar -->
				<form action="<?php the_permalink(); ?>" id="contactForm" method="post">
					<p>Silakan menghubungi saya via form kontak berikut ini</p><!-- Kata pembuka yang ditampilkan di bagian atas form komentar -->
					<p><label for="contactName">Name</label>
						<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField" />
						<?php if($nameError != '') { ?>
							<span class="error"><?=$nameError;?></span> 
						<?php } ?>
					</p>
					<p><label for="email">Email</label>
						<input type="text" name="email" id="email" value="<?php if(isset($_POST['email']))  echo $_POST['email'];?>" class="requiredField email" />
						<?php if($emailError != '') { ?>
							<span class="error"><?=$emailError;?></span>
						<?php } ?>
					</p>
					<p class="textarea"><label for="commentsText">Pesan</label>
						<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
							<?php if($commentError != '') { ?>
								<span class="error"><?=$commentError;?></span> 
							<?php } ?>
					</p>
						<p class="inline"><input type="checkbox" name="sendCopy" id="sendCopy" value="true"<?php if(isset($_POST['sendCopy']) && $_POST['sendCopy'] == true) echo ' checked="checked"'; ?> /><label for="sendCopy">Kirim salinan pesan ini ke email Anda</label></p>
						<p class="screenReader"><label for="checking" class="screenReader">Biarkan seperti ini!</label><input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($_POST['checking']))  echo $_POST['checking'];?>" /></p><!--Chaptca rahasia-->
						<p class="buttons"><input type="hidden" name="submitted" id="submitted" value="true" /><button type="submit">Kirim &raquo;</button></p>
				</form>
 
	<?php endwhile; ?>
	<?php endif; ?>
	<?php } ?>
</div><!--Akhir Kontak Wrapper-->
<?php get_footer(); //Memanggil footer.php (footer blog) ?>

Langkah 6: Mengatur Tampilan Form Kontak
Form kontak kita memang sudah jadi, tapi tampilannya belum diatur kan? sekarang mari kita atur tampilannya dengan CSS. Masukkan kode ini di style.css :

#kontak {margin:0 auto;overflow:hidden;width:auto;}
#kontak form{float:left;margin:50px 0;width:100%}
#kontak label {cursor:pointer;display: block;float: left;padding-right: 20px;width: 100px;}
#kontak input, #kontak textarea {width: 214px;}
#kontak textarea { height: 300px; width:500px; }
#kontak input:focus, ol#kontak textarea:focus { background-color: #f2f3f6; border-color: #ff9800; }
.error { color: #f00; }
#kontak p .error { font-size: 12px; margin-left: 20px; }
#kontak p.textarea .error {display: block;position: absolute;right: 0;top: 0;width: 100px;}
#kontak p.screenReader { margin-bottom: 0; }
#kontak p.inline input { width: auto; }
#kontak p.inline label { display: inline; float: none; width: auto; }

Langkah 7: Menampilkan Form Kontak di blog
Yay! akhirnya sampai juga di langkah terakhir. Langkah ini cukup mudah, yang perlu dilakukan hanyalah masuk ke dasbor WordPress, buat page baru, buat judul page dan aktifkan page template Form Kontak.

Cara mengaktifkan halaman kontak

Dan ….. taraaaaa! form kontak blog kita udah jadi. Contohnya silakan dilihat di halaman kontak blog saya.

Jika anda malas mengikuti tutorialnya, silakan download file-nya dengan mengklik tombol ini :

DOWNLOAD

§

WordPress Tips: Modifikasi WordPress Excerpt

23 Oct 2010 Wordpress 10 Comments

Bagi yang belum tahu, Excerpt adalah ringkasan dari suatu tulisan atau dalam konteks blog adalah ringkasan posting.

Bagi pengguna WordPress, excerpt dapat dimasukkan secara manual pada saat membuat posting.

Membuat Manual Excerpt

Ada beberapa theme WordPress yang otomatis menampilkan sebuah posting sebagai excerpt di halaman muka blog atau halaman arsip kategori. Biasanya theme itu menggunakan template tag the_excerpt() di post template-nya.

Jika the_excerpt() digunakan maka otomatis WordPress akan menampilkan 55 kata pertama dalam posting sebagai excerpt, menghilangkan semua pemformatan HTML pada sebuah postingan, dan menampilkan tanda [...] (suffix dot) pada akhir ringkasan. Karena semua format HTML hilang, maka secara otomatis paragraf, link dan image (jika ada) akan hilang pada tampilan excerpt, ini kurang baik karena tampilan postingan menjadi kurang menarik. Agar tampilan excerpt menjadi lebih baik, kita bisa memodifikasinya melalui functions.php.

Membuat function custom_excerpt()
Oke, sekarang waktunya kita koding. Kita akan membuat sebuah functions yang bernama custom_excerpt() untuk menggantikan the_excerpt(). Buka functions.php di directory theme wordpress anda dan masukkan baris kode berikut:

1
2
3
4
5
6
function custom_excerpt($text) {
	global $post;
	if ( '' == $text ) {
		$text = get_the_content('');
		$text = apply_filters('the_content', $text);
		$text = str_replace(']]>', ']]&gt;', $text);

Membuat pemformatan HTML tetap muncul pada excerpt
the_excerpt() secara otomatis akan menghilangkan semua pemformatan HTML pada posting, jadi semua paragraf, image, link, list atau apapun format HTML akan ditampilkan sebagai plain text di excerpt. Nah, untuk membuat pemformatan HTML tetap tampil masukkan kode berikut:

7
$text = strip_tags($text, '<p><blockquote><img><a>'); //Silakan tambahkan tag HTML lainnya jika diperlukan

Mengatur panjang excerpt
Secara default, WordPress akan mengambil 55 kata pertama sebuah posting sebagai excerpt, tapi tenang saja, kita dapat mengatur panjang excerpt sesuai keinginan kita, misalnya saja 33 kata.

8
9
10
11
$excerpt_length = 33;
	$words = explode(' ', $text, $excerpt_length + 1);
	if (count($words)> $excerpt_length) {
		array_pop($words);

Mengganti [...] (suffix dot) dengan read more link
Tambahkan baris kode berikut:

12
13
14
15
16
17
array_push($words, '<a href="'. get_permalink($post->ID) . '">' . 'Baca selengkapnya &raquo;' . '</a>');
	$text = implode(' ', $words);
	}
}
return $text;
}

Memberitahu WordPress untuk mengubah pengaturan excerpt
Langkah terakhir adalah memberitahu WordPress agar mengubah pengaturan excerpt

18
19
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_excerpt');

Hasil akhir dari function custom_excerpt adalah seperti ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function custom_excerpt($text) {
	global $post;
	if ( '' == $text ) {
	$text = get_the_content('');
	$text = apply_filters('the_content', $text);
	$text = str_replace(']]>', ']]&gt;', $text);
        $text = strip_tags($text, '<p><blockquote><img><a>'); //Silakan tambahkan tag HTML lainnya jika diperlukan
        $excerpt_length = 33;
	$words = explode(' ', $text, $excerpt_length + 1);
	if (count($words)> $excerpt_length) {
		array_pop($words);
                array_push($words, '<a href="'. get_permalink($post->ID) . '">' . 'Baca selengkapnya &raquo;' . '</a>');
	       $text = implode(' ', $words);
	}
}
return $text;
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_excerpt');

Dan sekarang excerpt blog WordPress kita sudah mempunyai tampilan baru. Oh ya, jika ada yang kurang jelas silakan bertanya di kolom komentar ;). Selamat mencoba.

§