首页 » 建站技术 » WordPress » 浏览内容

不用插件实现 Pagenavi 功能


2010-08-31 21:30:15 2,154 0 发表评论 字体: 作者:C.K.
标签: WordPress免插件

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

Pagenavi 是一个很好的功能,现在 WordPress 博客一般都是使用 WP-Pagenavi 插件来实现,其实 WordPress 现在已经自己支持 Pagenavi 功能了,只需要简单的代码下就可以实现 Pagenavi 功能。

WordPress 从 2.1 版本开始就提供了 paginate_links 的函数,它可以在任何地方显示页码导航链接。这个函数的基本参数如下:

其中 ‘base’ 参数用来提供创建页面链接的参考链接,’format’ 参数是用来替换成页码。’total’ 参数是设置页面的总数,’current’ 参数用于设置当前的页码,它们都必须是整数。这些参数我们在使用的时候必须提供的。

‘show_all’ 参数设置为 true 就会显示所有的页面,默认情况它是被设置为 false 的,通过 ‘end_size’ 和 ‘mid_size’ 这两个参数来控制页码显示的规则。’end_size’ 参数是用来控制在开始和结束的两端显示多少个数字,默认是 1 。’mid_size’ 参数是用来显示多少个数字显示在当前页数字的两边,并且不包括当前页。

‘prev_next’ 这个参数是用来设置是否显示上一页和下一页的页码链接,默认是 true,然后我们可以通过 ‘prev_text’ 和 ‘next_text’ 这两个参数来控制上一页和下一页的文本。

这样我们只需要提供,页码链接的基准链接,替换成页码的地方,以及当前页和总页数就可以实现使用 paginate_links 函数实现 Pagenavi 功能。

function native_pagenavi(){
  •     global $wp_query, $wp_rewrite;          
  •     $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
  •  
  •     $pagination = array(
  •     'base' => @add_query_arg('page','%#%'),
  •     'format' => '',
  •     'total' => $wp_query->max_num_pages,
  •     'current' => $current,
  •     'prev_text' => '« ',
  •     'next_text' => ' »'
  •     );
  •  
  •     if( $wp_rewrite->using_permalinks() )
  •         $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg('s',get_pagenum_link(1) ) ) . 'page/%#%/', 'paged');
  •  
  •     if( !empty($wp_query->query_vars['s']) )
  •         $pagination['add_args'] = array('s'=>get_query_var('s'));
  •  
  •     echo '<p class="page_navi">'.paginate_links($pagination).'</p>';
  • }
  • 将代码复制到当前主题的 functions.php,然后再相关的主题模板文件中使用 native_pagenavi() 函数。

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今5069 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2018-8-31 17:57:04
    • 您是本站第 14180111 位访客

    广告区 Guǎng Gào