函数
/* * 自定义查询分页函数 * @author WordPress迷 * @url https://www.maosiji.com/wpkaifa/8946.html * */ $args = array( 'base' => '%_%', // 用来参考的网址 'format' => '?page=%#%', // 用于 URL 的分页结构,例如: /page/3 'total' => 1, // 总页数 'current' => 0, // 当前页码 'show_all' => False, // 默认值是 false,如果设置为 true,那么将显示所有的可用页码 'end_size' => 1, // 页面显示在列表的末尾号 'mid_size' => 2, // 多少个数字到当前页面的两侧,但不包括当前页面 'prev_next' => True, // 布尔值,是否包含上一页和下一页的链接 'prev_text' => __('? Previous'), // 前一页的文字。只有当’prev_next’参数设置为 true 时有效 'next_text' => __('Next ?'), // 下一页的文字。只有当’prev_next’参数设置为 true 时有效 'type' => 'plain', // 定义该函数返回什么,plain, array 或 list 'add_args' => False, // 添加查询字符串参数到链接 'add_fragment' => '', // 添加文本追加到每个链接 'before_page_number' => '', // 在页码前显示的字符串 'after_page_number' => '' // 在页码后显示的字符串 ); echo paginate_links( $args );
描述
WordPress 函数 paginate_links()
用于任何自定义查询结果的主循环分页,包括 post 列表或自定义文章类型列表,或者文章存档分页、评论分页以及自定义数据等,比如想调用指定用户的所有评论并实现分页就可以通过 paginate_links()
函数实现。
参数
base
– (字符串)(可选)用于引用的 URL,被用来创建分页链接, 默认值“%_%
”,如“http://example.com/all_posts.php%_%”,如果设置了 format 参数,则无效format
– (字符串)(可选)用于 URL 的分页结构,默认值 “?page=%#%
”,如果使用了伪静态,则是“/page/%#%
”,“%#%”表示页面,例如:/page/3total
– (整数)(可选)总页数,默认值为 1current
– (整数)(可选)当前页码,默认值为 0show_all
– (布尔)(可选)是否显示所有页面,默认值是 false,如果设置为 true,设置为 false,则调用end_size
和mid_size
的设置end_size
– (整数)(可选)分页列表两边各显示多少个页码,默认值为 1mid_size
– (整数)(可选)当前页面页码两边的页码数量,不包括当前页码,默认值为 2prev_next
– (布尔)(可选)是否包含上一页和下一页的链接,默认值 trueprev_text
– (字符串)(可选)前一页的文字,“prev_next”参数设置为true时生效,默认值__(‘« Previous’)
next_text
– (字符串)(可选)下一页的文字,“prev_next”参数设置为 true 时生效,默认值__(‘Next »’)
type
– (字符串)(可选)控制返回值的格式,plain、array 或 list,默认值 plainadd_args
– (数组)(可选)添加查询字符串参数到链接,默认值 falseadd_fragment
– (字符串)(可选)添加文本追加到每个链接,默认值 Nonebefore_page_number
– (字符串)(可选)在页码前显示的字符串,默认值 Noneafter_page_number
– (字符串)(可选)在页码后显示的字符串,默认值 None
例子
global $wp_query; $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages ));
调用指定用户的评论列表并分页
$total = $wpdb->get_var(" SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE user_id = $thisauthor->ID AND comment_post_id = ID AND comment_approved = 1 "); $comments_per_page = 10; $page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1; $nowPage = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1; $offset = ($nowPage-1)*$comments_per_page; $comments = $wpdb->get_results("select * from $wpdb->comments where comment_approved = '1' AND user_id =".$user_ID." ORDER BY comment_date_gmt DESC limit ".$offset.",".$comments_per_page); foreach ($comments as $comment) { echo $comment->comment_content; } echo paginate_links( array( 'base' => add_query_arg( 'cpage', '%#%' ), 'format' => '', 'prev_text' => __('«'), 'next_text' => __('»'), 'total' => ceil($total / $comments_per_page), 'current' => $page )); //The example is from http://wordpress.stackexchange.com/questions/3318/
官方文档
https://codex.wordpress.org/Function_Reference/paginate_links
本文由 猫斯基 原创发布。
著作权均归用户本人所有。独家文章转载,请联系本站管理员。获得授权后,须注明本文地址! 本文地址:https://www.maosiji.com/2868.html