性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

WordPress代码:添加分页导航菜单

Loading
1
Comodo SLL证书促销 - 免费ssl证书申请_ssl证书购买_ev ssl证书_https证书购买 - GDCA_数安时代

分页导航菜单是一个网站必不可少的元素,今天就和大家分享一下倡萌使用了很久的 WordPress代码实现分页导航 的方法。

导航的效果如图所示:

wpdaxue.com-201210035

实现的方法很简单,一起来折腾吧。

1.将下面的代码放到 functions.php 最后一个 ?> 的前面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function par_pagenavi($range = 9){
	global $paged, $wp_query;
	if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
	if($max_page > 1){if(!$paged){$paged = 1;}
	if($paged != 1){echo "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳转到首页'> 返回首页 </a>";}
	previous_posts_link(' 上一页 ');
    if($max_page > $range){
		if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'";
		if($i==$paged)echo " class='current'";echo ">$i</a>";}}
    elseif($paged >= ($max_page - ceil(($range/2)))){
		for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
		if($i==$paged)echo " class='current'";echo ">$i</a>";}}
	elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
		for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i</a>";}}}
    else{for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
    if($i==$paged)echo " class='current'";echo ">$i</a>";}}
	next_posts_link(' 下一页 ');
    if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>";}}
}

2.添加下面的css样式到你的 style.css中

1
2
3
.page_navi{overflow:hidden;width:100%;text-align:center}
.page_navi a{height:36px;border:1px solid #DDD;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;color:#888;text-decoration:none;line-height:36px;margin:2px;padding:3px 8px}
.page_navi a:hover,.page_navi a.current{border:1px solid #FFBB76;color:#FF7200;font-weight:bolder}

3.在需要显示的地方(比如主题的 index.php、archive.php、category.php、search.php)中添加下面的调用代码即可

1
<div class="page_navi"><?php par_pagenavi(9); ?></div>

上面的数字表示最大显示几页,你可以根据自己的需要修改。

支付宝扫码打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

MetInfo | 最适合企业网站建设的cms系统

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

WordPress文章链接重定向插件:WP Post Redirect

WordPress文章链接重定向插件:WP Post Redirect

解决升级 WordPress 时提示”另一更新正在进行”

解决升级 WordPress 时提示”另一更新正在进行”

25 条评论

  1. functions.php 最后一个 ?>
    函数找到了,但是找不到最后一个 ?>
    可以截一下图么?

  2. 第二页及其其他分页,和第一页内容一样 怎么办

    • 按照本文,将代码添加到function.php最后一个?>前,在category.php的代码如下:

      <a href="”>

      但是点击第二页、第三页等等,页面内容和第一页一样

  3. 倡萌,

    当翻页到第2页后,例如是:http://www.ytxinhai.com/muk/page/2,

    那么他的之前的页码,或者显示首页的链接后面多了一个斜杠,http://www.ytxinhai.com/muk/

    这种斜杠怎么删除,看了很久,其实原网址没有斜杠,这就造成一大片的死链,好苦恼哎!

  4. 有问题,第二页是404 .。。。

    • 路径错误修改方法
      修改wordpress\wp-includes\classe-wp.php这个文件在这个文件中找到function handle_404()这个函数,源代码如下:
      function handle_404() {
      global $wp_query;
      // If we’ve already issued a 404, bail.
      if ( is_404() )
      return;
      // Never 404 for the admin, robots, or if we found posts.
      if ( is_admin() || is_robots() || $wp_query->posts ) {
      status_header( 200 );
      return;
      }
      // We will 404 for paged queries, as no posts were found.
      if ( ! is_paged() ) {
      // Don’t 404 for these queries if they matched an object.
      if ( ( is_tag() || is_category() || is_tax() || is_author() || is_post_type_archive() ) && $wp_query->get_queried_object() ) {
      status_header( 200 );
      return;
      }
      // Don’t 404 for these queries either.
      if ( is_home() || is_search() ) {
      status_header( 200 );
      return;
      }
      }
      // Guess it’s time to 404.
      $wp_query->set_404();
      status_header( 404 );
      nocache_headers();
      }
      把这段代码替换为:
      function handle_404() {
      global $wp_query;
      if ( !is_admin() && ( 0 == count( $wp_query->posts ) ) && !is_404() && !is_robots() && !is_search() && !is_home() ) {
      // Don’t 404 for these queries if they matched an object.
      if ( ( is_tag() || is_category() || is_tax() || is_author() ) && $wp_query->get_queried_object() ) {
      if ( !is_404() )
      status_header( 200 );
      return;
      }
      $wp_query->set_404();
      status_header( 404 );
      nocache_headers();
      } elseif ( !is_404() ) {
      status_header( 200 );
      }
      }

  5. 这人代码的风格也太看得让眼睛晕晕了吧, 换下行就好了

  6. 自定义文章类型用page.php模板这个就不管用了,怎么破?

  7. 请问下这段代码需要添加到哪里呢?不太懂代码

发表评论