Membuat Page Navigasi tanpa Plugins

Posted in WordPress

Copy file di bawah ini ke dalam function.php pada template Kamu

### Function: Page Navigation: Boxed Style Paging
function wp_pagenavi($before = '', $after = '') {
	global $wpdb, $wp_query;
	$pagenavi_options = pagenavi_init();

	if (!is_single()) {
		$request = $wp_query->request;
		$posts_per_page = intval(get_query_var('posts_per_page'));
		$paged = intval(get_query_var('paged'));
		$numposts = $wp_query->found_posts;
		$max_page = $wp_query->max_num_pages;
		/*
		$numposts = 0;
		if(strpos(get_query_var('tag'), " ")) {
		    preg_match('#^(.*)\sLIMIT#siU', $request, $matches);
		    $fromwhere = $matches[1];
		    $results = $wpdb->get_results($fromwhere);
		    $numposts = count($results);
		} else {
			preg_match('#FROM\s*+(.+?)\s+(GROUP BY|ORDER BY)#si', $request, $matches);
			$fromwhere = $matches[1];
			$numposts = $wpdb->get_var("SELECT COUNT(DISTINCT ID) FROM $fromwhere");
		}
		$max_page = ceil($numposts/$posts_per_page);
		*/
		if(empty($paged) || $paged == 0) {
			$paged = 1;
		}
		$pages_to_show = intval($pagenavi_options['num_pages']);
		$pages_to_show_minus_1 = $pages_to_show-1;
		$half_page_start = floor($pages_to_show_minus_1/2);
		$half_page_end = ceil($pages_to_show_minus_1/2);
		$start_page = $paged - $half_page_start;
		if($start_page <= 0) {
			$start_page = 1;
		}
		$end_page = $paged + $half_page_end;
		if(($end_page - $start_page) != $pages_to_show_minus_1) {
			$end_page = $start_page + $pages_to_show_minus_1;
		}
		if($end_page > $max_page) {
			$start_page = $max_page - $pages_to_show_minus_1;
			$end_page = $max_page;
		}
		if($start_page <= 0) {
			$start_page = 1;
		}
		if($max_page > 1 || intval($pagenavi_options['always_show']) == 1) {
			$pages_text = str_replace("%CURRENT_PAGE%", number_format_i18n($paged), $pagenavi_options['pages_text']);
			$pages_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pages_text);
			echo $before.'<div class="wp-pagenavi">'."\n";
			switch(intval($pagenavi_options['style'])) {
				case 1:
					if(!empty($pages_text)) {
						echo '<span class="pages">&#8201;'.$pages_text.'&#8201;</span>';
					}
					if ($start_page >= 2 && $pages_to_show < $max_page) {
						$first_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pagenavi_options['first_text']);
						echo '<a href="'.clean_url(get_pagenum_link()).'" title="'.$first_page_text.'">&#8201;'.$first_page_text.'&#8201;</a>';
						if(!empty($pagenavi_options['dotleft_text'])) {
							echo '<span class="extend">&#8201;'.$pagenavi_options['dotleft_text'].'&#8201;</span>';
						}
					}
					previous_posts_link($pagenavi_options['prev_text']);
					for($i = $start_page; $i  <= $end_page; $i++) {
						if($i == $paged) {
							$current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['current_text']);
							echo '<span class="current">&#8201;'.$current_page_text.'&#8201;</span>';
						} else {
							$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']);
							echo '<a href="'.clean_url(get_pagenum_link($i)).'" title="'.$page_text.'">&#8201;'.$page_text.'&#8201;</a>';
						}
					}
					next_posts_link($pagenavi_options['next_text'], $max_page);
					if ($end_page < $max_page) {
						if(!empty($pagenavi_options['dotright_text'])) {
							echo '<span class="extend">&#8201;'.$pagenavi_options['dotright_text'].'&#8201;</span>';
						}
						$last_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pagenavi_options['last_text']);
						echo '<a href="'.clean_url(get_pagenum_link($max_page)).'" title="'.$last_page_text.'">&#8201;'.$last_page_text.'&#8201;</a>';
					}
					break;
				case 2;
					echo '<form action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method="get">'."\n";
					echo '<select size="1" onchange="document.location.href = this.options[this.selectedIndex].value;">'."\n";
					for($i = 1; $i  <= $max_page; $i++) {
						$page_num = $i;
						if($page_num == 1) {
							$page_num = 0;
						}
						if($i == $paged) {
							$current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['current_text']);
							echo '<option value="'.clean_url(get_pagenum_link($page_num)).'" selected="selected" class="current">'.$current_page_text."</option>\n";
						} else {
							$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']);
							echo '<option value="'.clean_url(get_pagenum_link($page_num)).'">'.$page_text."</option>\n";
						}
					}
					echo "</select>\n";
					echo "</form>\n";
					break;
			}
			echo '</div>'.$after."\n";
		}
	}
}

Setelah itu include file di bawah ini:

Keep reading…

· · · ◊ ◊ ◊ · · ·

Random Image Script

Posted in WordPress

Tips ini ku perolah ketika sedang melihat-lihat isi dari halam web Founder WordPress kita, Matthew Mullenweg. Awalnya ku bingung kita melihat scriptnya, tapi selama ku coba-coba akhirnya bisa juga.
Oke, begini caranya;

  1. Buatlah folder di wp-content/uploads pada direktori WordPress kamu dengan nama ‘rotate’ (tanpa kutip).
  2. Isikan folder tersebut dengan gambar-gambar favorite kamu, (di sarankan agar ukuran gambar tersebut berukuran 640*480, agar tidak memakan banya bandwitdh ketika meloadnya).
  3. Ketikan file php di bawah ini dengan menggunakan aplikasi Text Processing (Notepad ++, EditPlus, maupun Dreamweaver)
<?php
/*
By Matt Mullenweg &gt; http://photomatt.net
Inspired by Dan Benjamin &gt; http://hiveware.com/imagerotator.php
Latest version always at:

http://photomatt.net/scripts/randomimage

*/// Make this the relative path to the images, like "../img" or "random/images/".
// If the images are in the same directory, leave it blank.
$folder = '';

// Space seperated list of extensions, you probably won't have to change this.
$exts = 'jpg jpeg png gif';

$files = array(); $i = -1; // Initialize some variables
if ('' == $folder) $folder = './';

$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // for each extension check the extension
if (preg_match('/\.'.$ext.'$/i', $file, $test)) { // faster than ereg, case insensitive
$files[] = $file; // it's good
++$i;
}
}
}
closedir($handle); // We're not using it anymore
mt_srand((double)microtime()*1000000); // seed for PHP &lt; 4.2
$rand = mt_rand(0, $i); // $i was incremented as we went along
<blockquote>header('Location: '.$folder.$files[$rand]); // Voila!
?>

Lalu simpan dengan nama ‘rotate.php’ (tanpa kutip) pada direktori yang kamu buat tadi di wp-content/uploads/rotate
Random Image sudah selesai di buat, sekarang tinggal mensettingnya agar tampil di sidebar kamu.

  1. Buka menu widgets kamu, lalu sisipkan Widgets Text.
  2. Isi titlenya sesuka kamu, lalu paste-kan code ini di kotak source-nya
    <center><div style="border: 1px solid rgb(0, 0, 0); padding: 2px 2px 2px; border-color: black; width: 160px; height: 110px;"&gt;&lt;img width="160" height="110" src="http://URL-KAMU/wp-content/uploads/rotate/rotate.php" alt="" title="Random Image" /&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;a href="http://URL-KAMU/wp-content/uploads/rotate/"&gt;More Random&lt;/></center>
  3. Anda bisa setting-setting sendiri kode-kode tersebut, kemudian save dan lihat hasilnya..
· · · ◊ ◊ ◊ · · ·

WordPress 2.8.4: Security Release

Posted in WordPress

Kamu masih menngunakan WordPress versi 2.8.3 ? Jika masih, segera update ke versi 2.8.4, karena versi 2.8.3 menyimpan bug yang memungkinkan seseorang me-reset password admin hanya dengan mengetikan URL di web browser, tanpa request memasukan e-mail seperti pada versi-versi sebelumnya.
Pada WordPress 2.8.3, seseorang cukup mengetikan URL http://DOMAIAN-ANDA.com/wp-login.php?action=rp&key= di web browser, dan password admin Kamu akan dikirimkan ke e-mail admin, namun tetap saja aktivitas ‘iseng’ ini dirasa mengganggu.
Pengembang WordPress sendiri telah merilis versi 2.8.4 untuk menutuo celah ini dengan mengubah sebris kode PHP untuk menguji input yang dikirimkan untuk me-reset password bukanlah sebuah data array.

· · · ◊ ◊ ◊ · · ·

3 Cara dengan Langkah yang mudah Meng-Update WordPress

Posted in WordPress

wordpressAda satu kewajiban bagi kita pengguna WordPress.org yang tidak boleh ditinggalkan, yaitu update engine (pembaharuan sistem). Update engine merupakan salah satu faktor yang sangat penting yang harus dilakukan oleh kita mengingat semakin hari tingkat kerawanan dunia maya semakin meningkat. Engine/sistem yang begitu lama tidak terupdate, memberikan celah besar bagi para penjahat maya (cracker) sehingga menyebabkan terbobolnya website atau blog Kamu..

Tapi nyatanya, terkadang kita merasa malas ketika harus mengupdate ke versi yang lebih baru. Dengan alasan;  Sulit, lama, repot, ga tau caranya atau entah apa alasannya.

Sama seperti aku sebelumnya, kemalasan membuatku ketinggalan versi WordPress.org yang terbaru, yang bisa membuka celah bagi para penjahat maya untuk membobol WordPress.org versi lama yang kita gunakan..

Seiring berjalannya waktu (alah!), kini sepertinya kemalasan itu mulai menghilang, Ya, karena di sini ku ingin berbagi langkah. Langkah yang ku dapat dari berbagai ahli WordPress yang ku jumpai di jagat maya. Kini engine WordPress.org ku selalu update dengan versi yang baru. Jadi bisa sedikti bernafas lega dengan tingkat kerawanan dunia maya yang semakin meningkat. (Tetap berhati-hati 100%)

Bayangkan apabila kamu adalah seorang blogger komersil, yang berpenghasilan puluhan juta dolar, apakah ingin website kamu terhambat dari kerawanan dan kejahatan dunia maya? Tentu tidak mau bukan..

Kesulitan, menunggu lama, repot dan alasan ga tau, rupanya akan sirna bagi kita yang bermalas-malasan untuk meng-update WordPress.org yang kita percayai sebagai salah satu mesin blog paling handal saat ini.

Terbagi menjadi 3 cara, dengan kekurangan dan kelebihan yang berbeda tetapi sangat mudah untuk di pahami. Sehingga blog kita terhindar dari kerawanan dan kejahatan dunia maya..

Berikut cara pertama:

Keep reading…

· · · ◊ ◊ ◊ · · ·

Menghilangkan Meta Name Generator Pada wordPress.org

Posted in WordPress

Secara default pada WordPress Versi 2.8 keatas pihak Automattic (perusahaan pembuat WordPress), menambahkan meta name generator seperti ini: < meta name = “generator” content = “WordPress 2.8?> pada setiap rilisnya. Penambahan meta name ini sebenarnya bertujuan untuk fungsi statistik saja, agar Automattic dapat mengetahui seberapa banyak pengguna WordPress Veris 2.8 keatas di seluruh dunia.

Lalu, mengapa saya menulis judul ‘Menghilangkan Meta Name Generator Pada wordPress.org sedangkan meta name itu sendiri di gunakan Automattic untuk melihat statistik pengguna WordPress!? Jawabannya  adalah untuk keamanan, tips ini bersifat sunah (lebih bagus apabila dikerjakan), karena apabila ada seseorang yang berniat jelek mengetahui Versi dari WordPress yang kita gunakan, maka akan lebih mudah orang tersebut mencari celah-celah keamanan dan menghack  WordPress yang kita gunakan. Salah satu penyababnya adalah, adanya pengambilalihan blog. Sungguh menakutkan bukan!!

Berikut langkah langkahnya;

Login lah ke dalam cpanel hosting Kamu, -> masuk ke dalam public_html -> masuk ke direktori wp-includes, cari file yang bernama general-template.php lalu klik edit.
Carilah fungsi function the_generator( $type )
Seperti gambar di bawah ini;

function1

Yang terakhir adalah, tambahakan string komentar yaitu slash 2 kali pada bagian depan fungsi  echo apply_filters(‘the_generator’, get_the_generator($type), $type) . “\n”;
Seperti gambar di bawah ini;

function2

Untuk mengeceknya, refresh halaman awal blog Kamu, lalu klik Edit -> Page Souce pada browser dan lihat hasilnya, < meta name = “generator” content = “WordPress 2.8?> sudah menghilang dari keberadaannya, yaitu di bagian bawah setelah kode <link rel=’index’ title=Title Blog Kamu’ href=’URL Blog Kamu’ />.

Jadi dengan langkah ini, ada 1 tips lagi cara untuk mengamankan WorPress yang kita gunakan dari orang-orang iseng dan tidak bertanggung jawab.

Semoga bermanfaat, dan tetap berhati-hati.

· · · ◊ ◊ ◊ · · ·