更快更好看|WordPress无插件分页代码

更快更好看|WordPress无插件分页代码

前言:

WordPress自带一个分页函数,叫做paginate_links,使用该函数就可以做文章分页。

这儿是代码:

关于paginate_links函数
  1. <?php echo paginate_links( $args ) ?>
  2. <?php $args = array(
  3.     ‘base’         => ‘%_%’,
  4.     ‘format’       => ‘?page=%#%’, //是否使用pretty link format
  5.     ‘total’        => 1, //一共分多少页
  6.     ‘current’      => 0,
  7.     ‘show_all’     => False, //是否显示全部页码,否则将省略一部分,类似wp_pagenavi效果
  8.     ‘end_size’     => 1, //开始和结束处显示多少个页码
  9.     ‘mid_size’     => 2, //当前页面两边显示多少个页码
  10.     ‘prev_next’    => True,
  11.     ‘prev_text’    => __(‘&laquo; Previous’),
  12.     ‘next_text’    => __(‘Next &raquo;’),
  13.     ‘type’         => ‘plain’, //页码类型可以使plain,list或者array
  14.     ‘add_args’     => False,
  15.     ‘add_fragment’ =>  ); ?>
对主循环进行分页

利用paginate_links函数对主循环分页,代码如下

  1. <?php
  2. global $wp_query;
  3. $total = $wp_query->max_num_pages;
  4. // only bother with the rest if we have more than 1 page!
  5. if ( $total > 1 )  {
  6.      // get the current page
  7.      if ( !$current_page = get_query_var(‘paged’) )
  8.           $current_page = 1;
  9.     // structure of “format” depends on whether we’re using pretty permalinks
  10.         $permalink_structure = get_option(‘permalink_structure’);
  11.         ifsubstr($permalink_structure,-1) != “/” ) {
  12.             if( is_home() )
  13.                 $sub_format = ‘page/%#%/’;
  14.             else
  15.                 $sub_format = ‘/page/%#%/’;
  16.         }else {
  17.             $sub_format = ‘page/%#%/’;
  18.         }
  19.         $format = emptyempty$permalink_structure) ? ‘&page=%#%’ : $sub_format;
  20.      echo paginate_links(array(
  21.           ‘base’ => get_pagenum_link(1) . ‘%_%’,
  22.           ‘format’ => $format,
  23.           ‘current’ => $current_page,
  24.           ‘total’ => $total,
  25.           ‘mid_size’ => 4,
  26.           ‘type’ => ‘plain’
  27.      ));
  28. } ?>

该代码可以实现与wp_pagenavi一样的效果。

该方法不仅适用于主循环,稍微改一下还可以用于自定义查询。代码如下:

  1. <?php
  2. $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
  3. $paged -= 1;
  4. $limit = 40;
  5. $offset = $paged * $limit;
  6. $args  = array(
  7.     ‘number’ => $limit,
  8.     ‘offset’ => $offset,
  9. );
  10. // Create the WP_User_Query object
  11. $user_query = new WP_User_Query($args);
  12. // Get the results
  13. $authors = $user_query->get_results();
  14. if($authors): ?>
  15. </pre>
  16. <div class=“members”><?php foreach($authors as $author) : ?>
  17.     <div class=“user-info”>
  18.         <div class=“user-gravatar48”><a href=“<?php the_qa_user_url( $author->ID)?>”><?php echo get_avatar($author->ID, 48); ?></a></div>
  19.         <div class=“user-details”><a href=“<?php the_qa_user_url( $author->ID)?>”><?php echo $author->display_name; ?></a> <?php the_qa_user_rep_inline(); ?></div>
  20.     </div>
  21.     <?php endforeach; ?><?php else: ?>
  22.     <div class=“post”><?php _e(‘No Members yet’,’thematic’); ?></div>
  23.     <?php endif; ?></div>
  24. <?php
  25.     //start page navigation
  26.     global $user_query;
  27.     $total = ceil($user_query->total_users/$limit);
  28.     // only bother with the rest if we have more than 1 page!
  29.     if ( $total > 1 )  {
  30.          // get the current page
  31.          if ( !$current_page = get_query_var(‘paged’) )
  32.               $current_page = 1;
  33.          // structure of “format” depends on whether we’re using pretty permalinks
  34.          $permalink_structure = get_option(‘permalink_structure’);
  35.          $format = emptyempty$permalink_structure) ? ‘&page=%#%’ : ‘/page/%#%/’;
  36.          echo paginate_links(array(
  37.               ‘base’ => get_pagenum_link(1) . ‘%_%’,
  38.               ‘format’ => $format,
  39.               ‘current’ => $current_page,
  40.               ‘total’ => $total,
  41.               ‘mid_size’ => 4,
  42.               ‘type’ => ‘plain’
  43.          ));
  44. } ?>

写在后面:

翻页不是一个难题。

本文参考于  http://www.solagirl.net/wordpress-paging-without-plugins.html ,若有任何来源问题,请联系QQ:1516677079 及时更正。

最有意思的设计站点


最好的UI素材库

我们极力推荐: