tahukan plugins wp-pagenavi? siapa sih yang ngga tahu plugins populer ini.
tulisan ini akan membahas cara menambahkan fitur page navi pada blog wordpress tanpa install plugins.
syarat, saya anggap!
- sobat sudah install wp offline
- sudah memiliki text-editor, recomendasi (notepad ++)
berikut cara pasang page navi pada themes Twentyten
- masuk ke folder Twentyten ada di . . .nama-folder-wp/wp-content/themes/…
- edit functions.php
- lalu tambahan script dibawah
berikut adalah script wp-pagenavi v 2.61
<?php
/*
Plugin Name: WP-PageNavi
Plugin URI: http://wordpress.org/extend/plugins/wp-pagenavi/
Description: Adds a more advanced paging navigation to your WordPress blog.
Version: 2.61
Author: Lester 'GaMerZ' Chan
Author URI: http://lesterchan.net
*/
/*
Copyright 2009 Lester Chan (email : lesterchan@gmail.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
### Function: Page Navigation: Boxed Style Paging
function wp_pagenavi($before = '', $after = '') {
global $wpdb, $wp_query;
if (is_single())
return;
$pagenavi_options = array();
$pagenavi_options['pages_text'] = __('Page %CURRENT_PAGE% of %TOTAL_PAGES%');
$pagenavi_options['current_text'] = '%PAGE_NUMBER%';
$pagenavi_options['page_text'] = '%PAGE_NUMBER%';
$pagenavi_options['first_text'] = __('« First');
$pagenavi_options['last_text'] = __('Last »');
$pagenavi_options['next_text'] = __('»');
$pagenavi_options['prev_text'] = __('«');
$pagenavi_options['dotright_text'] = __('...');
$pagenavi_options['dotleft_text'] = __('...');
$pagenavi_options['style'] = 1;
$pagenavi_options['num_pages'] = 5;
$pagenavi_options['always_show'] = 0;
$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 = intval($wp_query->max_num_pages);
if (empty($paged) || $paged == 0)
$paged = 1;
$pages_to_show = intval($pagenavi_options['num_pages']);
$larger_page_to_show = intval($pagenavi_options['num_larger_page_numbers']);
$larger_page_multiple = intval($pagenavi_options['larger_page_numbers_multiple']);
$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;
$larger_pages_array = array();
if ( $larger_page_multiple )
for ( $i = $larger_page_multiple; $i <= $max_page; $i += $larger_page_multiple )
$larger_pages_array[] = $i;
if ($max_page > 1 || intval($pagenavi_options['always_show'])) {
$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'])) {
// Normal
case 1:
if (!empty($pages_text)) {
echo '<span class="pages">'.$pages_text.'</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()).'" class="first" title="'.$first_page_text.'">'.$first_page_text.'</a>';
if (!empty($pagenavi_options['dotleft_text'])) {
echo '<span class="extend">'.$pagenavi_options['dotleft_text'].'</span>';
}
}
$larger_page_start = 0;
foreach($larger_pages_array as $larger_page) {
if ($larger_page < $start_page && $larger_page_start < $larger_page_to_show) {
$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($larger_page), $pagenavi_options['page_text']);
echo '<a href="'.clean_url(get_pagenum_link($larger_page)).'" class="page" title="'.$page_text.'">'.$page_text.'</a>';
$larger_page_start++;
}
}
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">'.$current_page_text.'</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)).'" class="page" title="'.$page_text.'">'.$page_text.'</a>';
}
}
next_posts_link($pagenavi_options['next_text'], $max_page);
$larger_page_end = 0;
foreach($larger_pages_array as $larger_page) {
if ($larger_page > $end_page && $larger_page_end < $larger_page_to_show) {
$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($larger_page), $pagenavi_options['page_text']);
echo '<a href="'.clean_url(get_pagenum_link($larger_page)).'" class="page" title="'.$page_text.'">'.$page_text.'</a>';
$larger_page_end++;
}
}
if ($end_page < $max_page) {
if (!empty($pagenavi_options['dotright_text'])) {
echo '<span class="extend">'.$pagenavi_options['dotright_text'].'</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)).'" class="last" title="'.$last_page_text.'">'.$last_page_text.'</a>';
}
break;
// Dropdown
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;
}
}
?>
- save
- edit lagi index.php
- lalu cari
</div><!-- #content --> ada di line/baris 28
- kemudian edit menjadi seperti ini
<?php if ( is_home() ) : //jika home ?>
<?php wp_pagenavi(); ?>
<?php endif; ?></div><!-- #content -->
untuk merubah tampilanya
tambahkan style berikut di atas </head>, buka/edit header.php
<style type="text/css">
.wp-pagenavi{
font-size:120%;
clear:both;
margin:8px 0 0 0;
padding:6px 0 0 0;
width:100%;
}
.wp-pagenavi a{
border:1px solid #ccc;
margin:0 3px 0 0;
padding:2px 8px;
text-decoration:none;
}
.wp-pagenavi a:hover{
background:#ccc;
border:1px solid #666;
}
.wp-pagenavi .pages{
padding:2px 8px;
margin:0 3px 0 0;
border:1px solid #ccc;
}
.wp-pagenavi .page{
padding:2px 8px;
}
.wp-pagenavi .current{
padding:2px 8px;
background:#ccc;
border:1px solid #666;
margin:0 3px 0 0;
}
.wp-pagenavi .first,
.wp-pagenavi .last{
padding:2px 8px;
}
.wp-pagenavi .extend{
padding:2px 1px;
border:1px solid #ccc;
margin:0 3px 0 0;
}
</style>
***
menambahkan wp-pagenavi untuk themes lain
yang paling pertama edit functions.php lalu isi dengan script seperti diatas, setelah itu
jika home.php sudah ada
wp-pagenavi ini hanya tampil di home, jadi untuk themes lainya jika home.php sudah ada, kita hanya perlu menambahkan kode ini
<?php wp_pagenavi(); ?>
sedangkan letak menaruh scriptnya, coba test/masukan di bawah, misal(ngga semua themes sama)
<?php endwhile; ?>
<?php endif; ?>
<?php // disini ?>
atau, di atas
<div>
<div><?php next_posts_link('« Older Entries') ?></div>
<div><?php previous_posts_link('Newer Entries »') ?></div>
</div>
perhatiakn juga letak </div> nya.
jika home.php ngga ada
hampir sama seperti themes Twentyten, kita hanya perlu manambahan script ini di index.php
<?php if ( is_home() ) : //jika home page ?>
<?php wp_pagenavi(); //request wp-pagenevi ?>
<?php endif; ?>
css wp page-navinya
.wp-pagenavi{
font-size:120%;
clear:both;
margin:8px 0 0 0;
padding:6px 0 0 0;
width:100%;
}
.wp-pagenavi a{
border:1px solid #ccc;
margin:0 3px 0 0;
padding:2px 8px;
text-decoration:none;
}
.wp-pagenavi a:hover{
background:#ccc;
border:1px solid #666;
}
.wp-pagenavi .pages{
padding:2px 8px;
margin:0 3px 0 0;
border:1px solid #ccc;
}
.wp-pagenavi .page{
padding:2px 8px;
}
.wp-pagenavi .current{
padding:2px 8px;
background:#ccc;
border:1px solid #666;
margin:0 3px 0 0;
}
.wp-pagenavi .first,
.wp-pagenavi .last{
padding:2px 8px;
}
.wp-pagenavi .extend{
padding:2px 1px;
border:1px solid #ccc;
margin:0 3px 0 0;
}
tahukan cara menggunakan css?
jika wp-page navinya ngga muncul!
kalau wp-pagenavinya ngga muncul, itu berarti agan belum menambahkan script page navi di functions.php, coba baca ulang
jika wp-pagenavinya error!
perhatikan script ini
<?php wp_pagenavi(); //request wp-pagenevi ?>
tambahan
hapus script/markup seperti ini di home.php dan index.php jika menambahkan wp-pagenavi(ngga semua script themes sama)
<div>
<div><?php next_posts_link('« Older Entries') ?></div>
<div><?php previous_posts_link('Newer Entries »') ?></div>
</div>
sosialisasi lainya silakan tingalkan komentar!


Sepertinya banyak yang harus disesuaikan dengan masing-masing template?
kalau kodenya sepanjang itu mending memakai plugin aja Bro, baru lihat kodenya aja saya udah pusing tujuh keliling
sejuta,,,, eh setuju… bro aja puyeng, apalagi saya yang masih newbie????
Yo’i coy., ane juga pyeng praktekinnya.,
wih boleh dicoba ini,
Aldy,
sebenarnya yang perlu diperhatikan hanya penempatan scriptnya, itu saja
Rudy,
itukan scritp bawaan plugins wp-pagenavi, jadi emang begitu bentuknya.
Hehehe, saya males pakai plugins, akismet sudah cukup bagi saya.
Apa ini mengurangi jatah spce juga mas bro, kalau sama aja mending pake plugin aja
Fadel,
pikirkan saja, berapa size plugin wp pagenavi, lalu bagaimana cara kerja plugins itu.
agak repot mas masalahnya tiap themes kan beda-beda berarti perlu penyesuaian.. untuk yang tertarik buat otak-atik sih oke tapi untuk awam mungkin pilih install plugin mas hehe
mungkin yang paham coding senang memakai itu mas.. tp saya yang pemula mending pakai plugin aja hehehe..
Alasan kenapa baiknya di pisahkan dalam plugin, adalah, kamu gampang untuk mengelolanya.
ia, dicampur dengan themes terasa lebih mudah
Oh, ternayata sama kamu tidak mengerti apa yang ku maksud. By the way, halaman single post yang baru ini very-very suck.
Ganda,
Tadi pas, ngereply ngga bisa bepikir apa-apa lg, semalaman ngga ada tidur, jadi seperti itulah jadinya “nggak koneck”.
Hohoho… Bukan suck aja tapi broken, dirty, bad juga.
Sementara ini ngga bisa dibagusin karena ngga login di cpanel. Disable aja javascriptnya untuk tampilan kemarin.
Mengapa tidak mengaktifkan koneksi FTP?
Ganda,
maaf, saya lupa ‘penulisan scriptnya pakai apa ya?’ kalau ngga salah sih pakai javascript? Kalau tampilanya ngga berubah, berarti pakai php.
Walah. Mana saya tahu. Ini kan script buatanmu. Kemungkinan CSS. Ini sampai mata saya sakit banget buat ngisi komentar ini. Fuhhh
Ganda,
maaf, sekali lg disable aja javascriptnya.
tipsnya belum dicoba, mas.
soalnya keliatan ribet. :hammer:
mungkin saya lebih milih pake plugin aja. soalnya saya kan suka dengan yang instan-instan.
hehehe
Btw, desain blognya kok kayaknya gak nyaman diliat gini ya, mas??
sedang bereksperimen kah?
Dimas,
maaf maaf maaf dan maaf, tampilan sekarang emang hancur bgt. Untuk sementara view pakai opera atau chrome aja dulu.
Atau jika pakai ff, safari, ie, flock, dll silakan disable javascriptnya.
Wah.. Mumet lihat kodenya.. Btw makasih atas share template wp+bloggernya ___Salam kenal.. thanks___
ok bro, salam kenal balik
Salam kenal mas..
Wah mumet baca scriptnya.. Pemula banget.. Tapi terimakasih atas share theme wp+bloggernya
yupi, sama-sama. salam kenal
Boleh di coba nih…
Apa boleh twentyten ditempeli kode dari google?
mo tanya mas, saya pake plugin pagenavi sdh muncul, tapi dipinggir kiri, bgmn cara mengaturnya agar ditengah ya ?
ada yg bisa bantu ?
coba tambahkan style ini di css wp-pagenavinya
margin:0 auto;
max-width:150px;
Kalo Buat Blogspot Bisa Ga .. ??
ada juga buat blogspot, coba googling
gan,. saya dah pernah nyoba trik ini., tp ga berhasil ya?
apa themanya tidak mendukung? saya pake thema iFeature 2.0.6