WordPress.org

Ready to get started?Download WordPress

Forums

Pagination and a Custom Post Loop (13 posts)

  1. mr orange
    Member
    Posted 3 years ago #

    I have a custom post loop running for my portfolio pieces. I want to add pagination to the entries (i.e., "next project ->", etc.).

    I have tried everything and I just cannot figure out how to do it. Here is the code for my custom 'Portfolio' loop. If anyone can put their mind to work for me I would be overly appreciative. I have spent hours and hours troubleshooting this..

    <?php
    /*
    Template Name: Portfolio
    */
    ?>
    
    <?php include ('header-portfolio.php'); ?>
    
     <?php
     global $post;
      $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
      $myposts = get_posts(array(
        'post_type' => 'portfolio',
        'numberposts' => '999',
        'orderby' => 'id',
        'order' => 'ASC',
        'paged'=> $paged
    
      ));
      foreach($myposts as $post):
    ?>
    
    <?php setup_postdata($post) ?>
    <?php posts_nav_link('nextpost'); ?>
    <div class="thumbwrapper">
    
    	<div class="portfolio_post">
    
     			 <h2><a
      			 		 title="<?php the_title(); ?>"
       					 href="<?php the_permalink() ?>"
      				     rel="bookmark"><?php the_title(); ?><br/><br/><?php the_excerpt('Read more...'); ?>
        		 </a></h2>
    
     	 	 <div class="portfolio_thumb">
    
    <a href="<?php the_permalink() ?>"> 
    
    	<?php the_post_thumbnail(); ?>
    
    </a>
    
    </div>
    
    	</div>
    
    </div>
    <?php endforeach; wp_reset_query(); ?>
  2. keesiemeijer
    moderator
    Posted 3 years ago #

    Try it with 'paged'=> $paged in stead of 'page'=> $paged

  3. mr orange
    Member
    Posted 3 years ago #

    Thanks for the info kees,

    I have tried that, it still doesn't seem to work.

    Do you know anything else I might be missing?

    All that I want is that when you are in a full post that you can have navigation links for 'next post' and 'previous post' using the php:
    `next_posts_link(__('Older'));

    previous_posts_link(__('Newer'));`

  4. alchymyth
    Forum Moderator
    Posted 3 years ago #

    found this:
    http://wpengineer.com/1263/correct-pagination-with-get_posts/

    (untested)

    with your code, you obviously need more than 999 'portfolio' posts, to start pagination.

  5. mr orange
    Member
    Posted 3 years ago #

    Thanks alchymyth for the info, that is some good info but sadly that did not seem to work either (I'm not sure I implemented that correctly from his code though, but I couldn't get it to work).

    I am so tired of this that I would be willing to pay someone to find me a fix.

    _
    My main desire is to have pagination on the custom-single.php file (the full portfolio post itself to link to next and previous posts)

  6. keesiemeijer
    moderator
    Posted 3 years ago #

    Why not use a normal loop? try it with this: http://wordpress.pastebin.com/2udjPHCj

  7. mr orange
    Member
    Posted 3 years ago #

    Thanks again!

    When I paste that into my portfolio.php file, the portfolio page does not load (white screen). Not sure how to amend whatever might be wrong with it.

    I used this tutorial to make my custom post template:

    http://www.astronautdesigns.com/2010/06/wordpress-3-custom-post-types/

    The author told me to add the following but that did not work:

    <div class="posts-nav-links">
    <li class="previous"><?php previous_post(‘%’,'&laquo; Previous’, ‘no’); ?></li> |
    <li class="back"><a href="/portfolio">Back to Portfolio</a></li> |
    <li class="next"><?php next_post(‘%’,'Next &raquo;’, ‘no’); ?></li>
    </div>
  8. keesiemeijer
    moderator
    Posted 3 years ago #

    Yes I didn't test this but I think I found the error: http://wordpress.pastebin.com/WpDL4XPC

  9. mr orange
    Member
    Posted 3 years ago #

    Thank you for all of your help!

    Ok, this time there was no blank screen, it just didn't seem to prompt the next and previous links to show up. It also did not work on the portfolio-single.php file when clicked on a link.

    So sorry for all of the trouble, is there something else I can do? Should I upload my files or something?

    Thanks.

    _
    Patrick

  10. keesiemeijer
    moderator
    Posted 3 years ago #

    This is a page with a page template of Portfolio that shows a loop with only post_type portfolio right. You don't see any pagination links? Can you profide a link to this page so that we can see what's going on.

    For single posts you need the template file single.php and next_post_link() and previous_post_link.
    http://codex.wordpress.org/Function_Reference/next_post_link
    http://codex.wordpress.org/Function_Reference/previous_post_link

  11. mr orange
    Member
    Posted 3 years ago #

    Yes, I have all of that correct. Perhaps I need to upload my files. It is on a local host on my computer

  12. astrotim
    Member
    Posted 3 years ago #

    Hi Patrick,

    Are you sure that you don't mean navigation instead of pagination? Pagination is the dividing of long content into smaller sections over multiple pages, like if you had 20 projects in your portfolio and you wanted the portfolio page to show only the first 10, with the next 10 on "page 2".

    What you seem to be describing is sequential navigation through the list of portfolio posts, eg: "previous post | next post". This, as far as my understanding goes, is not pagination.

    My code sample that you have included above should be added to the single.php file, not the portfolio.php file. As keesiemeijer has pointed out above, you need to have a single post template file such as single.php for the "next post" and "previous post" navigation links to work.

    In the case of a portfolio, your portfolio.php file acts like index.php, where the loop will display all posts (as you have specified numberposts => 999) with title, thumbmail, read more, etc. Then when you click a link to an individual post, your theme will look for the single.php file to display the complete post. It is here that you can add the navigation "Previous | Next". These links will reload single.php with new single post content, while returning to portfolio.php will load all posts in the "thumbwrapper" format you have specified.

    Just to clarify--

    Pagination is the division of your complete list of posts into smaller sections across multiple pages, such as on my blog index page here: http://www.astronautdesigns.com/blog. This can only be done on in a post index file such as index.php or portfolio.php.

    -vs-

    Sequential navigation is a single post that has next post and previous post links that move backwards and forwards through your sequence of posts in the full single post format. This must be done on a single.php or equivalent file. My code sample you have included above is form this page which is using the single.php file.

    Which one is it that you want?

  13. mr orange
    Member
    Posted 3 years ago #

    I figured it out. Thanks for all of your help guys. I added the non-conditional next_post_link tag in my single-footer.php and the code from above. Viola!

Topic Closed

This topic has been closed to new replies.

About this Topic