$10
Can you paginate my custom post loop?
I am looking for a finished and tested solution that does not involve a plugin. The number of posts displayed at one time should be defined via theme option function; the format we use is included.
Thanks guys!
Current loop
<?php query_posts(array('post_type' => array('portfolio', 'orderby'=> 'menu_order'))); if (have_posts()) : while (have_posts()) : the_post(); ?>--posts--
<?php endwhile; ?>
<nav>
<div><?php next_posts_link('« Older Entries') ?></div>
<div><?php previous_posts_link('Newer Entries »') ?></div>
</nav>
<?php endif; ?>Theme option format
$settings['shortname_option_name']
Matt Taylor | 10/04/10 at 3:14pm
| Edit
(2) Possible Answers Submitted...
-

Last edited:
10/08/10
7:05amMaor Barazany says:Currently you can't paginate a custom post type without a plugin if you use permalinks.
Only if you use the WP default, you can paginate.
That is a known issue on WP3.0 and 3.0.1, they just didn't create a them hierarchy file for custom posts type, and thus all of these issues.
I think I saw in WP Dev blog that they intend to extend the template hierarchy in WP3.1 to include also file for custom-post-type's archive page, and then it will be simple as having pagination to any other posts archives.
Till 3.1, the Simple Custom Post Type Archives just do the job of having this template file hierarchy enabled and doing the correct rewrites that should be done for this to work.
After activating it, create a template file to show your "archive" custom-post-type.
Take the archive.php (or index.php etc) from your theme, duplicate it and rename the file name to type-slug.php, Where slug is the value you gave as slug parameter when you registered your post type:
'rewrite' => array('slug' => 'news'),
i.e. if the slug is news, the filename would be type-news.php
Then, in the php file you created, find the loop (the line that starts with
if (have_posts()) : ?>
<?php while (have_posts()) : the_post();
and just before it add this line:
query_posts('posts_per_page=10&paged='.$paged.'&post_type=news');
Of course, put your post type name you really have, and change the posts_per_page you want. If you want the number of posts per page to be dynamic via your option page, just call it and assign it's value:
$per_page = $settings['shortname_option_name'];
query_posts('posts_per_page='.$per_page.'&paged='.$paged.'&post_type=news');
-
Last edited:
10/07/10
2:40amOleg Butuzov says:yes why not.
what is page name (page slug ) that you had attache this post type query loop?Previous versions of this answer: 10/07/10 at 2:40am
This question has expired.
Current status of this question: Completed





