WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Pagination: current page OF total pages (3 posts)

  1. amarettosour
    Member
    Posted 1 year ago #

    I'm using this code for pagination on my custom post type pages, it works fine but I'd like the pagination to display as: 1 of 12, 2 of 12 etc. I can do this with CSS but I'd rather contain it within the function, but I'm not sure how to go about this!

    Any help appreciated, thank you.

    function paginate() {
            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,
                'show_all' => false,
                'mid_size' => 0,
                'prev_text'    => __('<'),
    			'next_text'    => __('>'),
                'type' => 'list'
            );
            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 paginate_links( $pagination );
        }
  2. vtxyzzy
    Member
    Posted 1 year ago #

    Instead of just echoing paginate_links(), you can prefix it with 'Page x of y'. This should get you started:

    $links = paginate_links($pagination_args);
    $links = "<span class='pagexofy'>Page $current of $query->max_num_pages</span>" . $links;
    
    echo $links;

    You will probably want to add CSS for styling.

  3. amarettosour
    Member
    Posted 1 year ago #

    Brilliant, thank you.

    For reference if anyone is trying to do the same thing, my final code is:

    function paginate() {
    	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,
    		'show_all' => false,
    		'end_size' => 0,
    		'mid_size' => 0,
    		'type' => 'list'
    	);
    	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' ) );  
    
    	$prev = get_previous_posts_link('<');
    	$next = get_next_posts_link('>');
    
    	$links = paginate_links($pagination_args);
    	$links = "<span class='pagexofy'>$prev $current of $wp_query->max_num_pages</span> $next" . $links;
    	echo $links;
    }

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags