Membuat Page Navigasi tanpa Plugins

WordPress No Comments »

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:

Read the rest of this entry »

Random Image Script

WordPress No Comments »

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

WordPress No Comments »

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

WordPress 3 Comments »

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:

Read the rest of this entry »

Copyright © 2010 Yanuar Sulistyo Wibowo
Back to Top ↑