纯代码给WordPress添加分页导航
具体效果请参照本站,现在分享下:
添加下面代码至 functions.php:
function mcooo_pagenavi($pages_to_show = 5) {
global $request, $posts_per_page, $wpdb, $paged;
$half_pages_to_show = round($pages_to_show/2);
if (!is_single()):
if(!is_category()) preg_match(‘#FROM\s(.*)\sORDER BY#siU’, $request, $matches); else preg_match(‘#FROM\s(.*)\sGROUP BY#siU’, $request, $matches);
$fromwhere = $matches[1];
$numposts = $wpdb->get_var($wpdb->prepare(“SELECT COUNT(DISTINCT ID) FROM $fromwhere”));
$max_page = ceil($numposts/$posts_per_page);
if(empty($paged)) $paged = 1;
if($max_page > 1):
if ($paged >= ($pages_to_show-1))
echo ‘<a href=”‘.get_pagenum_link().’”>’.__(“First page”,”mcooo”).’</a> … ‘;
for($i = $paged – $half_pages_to_show; $i <= $paged + $half_pages_to_show; $i++) {
if ($i >= 1 && $i <= $max_page)
if($i == $paged) echo ‘<span>’.$i.’</span>’; else echo ‘ <a href=”‘.get_pagenum_link($i).’”>’.$i.’</a> ‘;
}
if (($paged+$half_pages_to_show) < ($max_page)):
echo ‘… <a href=”‘.get_pagenum_link($max_page).’”>’;
printf(__(“Last page (%s)”,”mcooo”),$max_page);
echo ‘</a>’;
endif;
endif;
endif;
}
添加美化代码:
p#subNav {padding: 8px 3px; margin:20px 40px; text-align: left; color: #ff6500; font: 12px/16px Tahoma, Arial, sans-serif}
p#subNav a, p#subNav a:link{border: 1px solid #ccc; margin-right: 3px; padding: 3px 5px; color: #888; background: #f9f9f9}
p#subNav a:hover{border: 1px solid #bbb;background: #fdfdfd; color: #777}
p#subNav a:active{border: 1px solid #111;background: #666; color: #f8f8f8}
p#subNav span.current{margin-right: 3px; padding: 3px 5px; border: 1px solid #aaa; font-weight: 700; background-color:#eee; color: #999}
p#subNav span.extend{margin-right: 3px; padding: 3px 5px; border: 1px solid #eee; color: #ddd}
ul#subNav {height: 18px; border: 1px solid #eee; background: #fafcf9; margin: 0 40px}
添加调用代码至主题:index.php、archive.php、category.php、search.php
<p id=”subNav”>
<?php mcooo_pagenavi(5); ?>
</p>