WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Pagination for custom post type on page template (3 posts)

  1. michaeloc
    Member
    Posted 3 years ago #

    Hello I am trying to add pagination to a page template which I am using to display a custom post type. I have looked around for a few hours but I haven't come across clear set of instructions to follow.

    Below is all the code from my page template php file. If someone could point me in the right direction it would be much appreciated.

    I would appreciate any help on how to add the code for

    <?php
    /**
     * Template Name: Testimonials Template
     *
     * This is the template for testimonials page.
     *
     * @package WordPress
     * @subpackage Twenty_Eleven
     * @since Twenty Eleven 1.0
     */
    
    get_header(); ?>
    
    <?php include("2011-header-image.php"); ?>
    
    		<div id="primary">
    
    <?php get_sidebar(); ?>
    
    			<div id="content" role="main">
    
    			<?php include("kinlay-breadcrumb.php"); ?>
    
    				<hgroup>
    					<h1 class="entry-title"><?php the_title(); ?></h1>
    				</hgroup>
    
    			<?php query_posts(array('post_type'=>'testimonials')); ?>
    
    				<?php while ( have_posts() ) : the_post(); ?>
    
    <?php 	// The code must be inserted ahead of the call to the content
    global $more;
    $more = 0;
    ?>
    
    					<?php get_template_part( 'content', 'testimonials' ); ?>
    
    					<?php // comments_template( '', true ); ?>
    
    				<?php endwhile; // end of the loop. ?>
    
    			</div><!-- #content -->
    		</div><!-- #primary -->
    
    <?php get_footer(); ?>
  2. vtxyzzy
    Member
    Posted 3 years ago #

    Try changing this:

    <?php query_posts(array('post_type'=>'testimonials')); ?>

    to this:

    <?php
    $paged = (get_query_var('page')) ? get_query_var('page') : 1;
    query_posts(array('post_type'=>'testimonials', 'paged' => $paged));
    ?>

    And, insert this:

    <div class="navigation">
       <div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
       <div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
    </div>

    just after the end of the loop.

    You may need to add or change some CSS to get the alignment right.

  3. michaeloc
    Member
    Posted 3 years ago #

    Thanks vtxyzzy,

    I ended up installing the page navi plugin

    and inserting code below and it's now working. I like your solution because it doesn't require a plugin so will keep for future reference

    <?php
      $paged = get_query_var('paged') ? get_query_var('paged') : 1;
      $wp_query = new WP_Query(array('post_type' => 'testimonials',
                                     'paged' => $paged,
                                     'post_per_page' => 5)
                               );
      while ($wp_query->have_posts()) : $wp_query->the_post();
    ?>

Topic Closed

This topic has been closed to new replies.

About this Topic