I assume you mean the links appear, but do not ‘page’ through your posts and keep displaying the same 2. If so, change the query_posts portion of your code to this:
<?php
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=3&showposts=2&paged=$page");
?>
This sets the paged argument value to what it actually is, or to ‘1’ when no paged value exists.
I’ve been having a problem with post_nav_link myself, though I don’t know if it is the same problem. When I click on the “previous posts” link, it just gives me a “page not found”.
I tried everything I could think of, I even reinstalled WP with a clean database, and for some reason that worked for 2 seconds, and then the same problem showed-up again.
I haven’t changed anything other than the template files. If anyone has an idea what might be causing this problem I would greatly appreciate it.
You can checkout the link at:
http://imagebaker.com/posts/
Thanks.
Thanks Kafkaesqui.
Actually, the posts_nav_link doesn’t show up at all. The content, such as ‘previous’ and ‘next’ don’t show up at the bottom of the page, as you can see here.
I went ahead and plugged in the code you suggested to see if it would solve both the content appearance and functionality, but I can’t get it to show up at all.
If you have any other suggestions, I would greatly appreciate it!
Thanks for the code, Kafkaesqui, it solved my problem.
marc0047, I wish I could help with yours, but your code looks ok to me. =/
Syllani –
If you don’t mind, please post your version of the code. It would be helpful for me to check for inconsistencies.
Thanks.
Could I just ask Kafkaesqui, the code you mentioned:
<?php
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=3&showposts=2&paged=$page");
?>
Is that supposed to go between
<?php if (have_posts()) : ?>
and
<?php while (have_posts()) : the_post(); ?>
in the index.php file?
I tried the following again on a fresh WP database and it worked:
<?php
$page = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
query_posts(“cat=3&showposts=2&paged=$page”);
?>
However, whenever I selected any of the categories, it didn’t isolate the page according to the categories. The pages reloaded but with the same content, and the posts_nav_link content disappeared.
If the code above is intended for frontpage only then modification follows.
<?php
if( is_home() ) {
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=3&showposts=2&paged=$page");
}
?>
I’m creating a different page altogether, and it also doesn’t reside in the Themes folder. I have the page residing in the root directory of the WP folder.
Is there a way to write a proper query that will make it function for this page?
Thanks.
I’ve implemented Kafkaesqui’s above code to page through an individually templated category and it works perfectly- save one point- after 6 pages, the
next_posts_link
does not render (there are more than 40 posts in the category, and each successive page properly renders the
previous_posts_link
perfectly.
Anyone have any ideas what I’m missing? My last gasp will be running a simple counter to increment the pages somehow, and I’d rather have a little better solution than that! Thanks.
Hi,
I’ve been developing a WordPress 2.0.1 install, and I’m having a similar problem with the Previous and Next post links working. I’m trying to limit each page to only a single day’s posts. If a day only has a single post, then the “Previous” link won’t show up, while even if I have several posts each day the Previous link only will show up on the front page. On archive page 2, the link isn’t there! I stumbled on this thread, and was wondering if this idea would work with a 2.0.1 install?
The code that Kafkaesqui provided will not page correctly if Category’s showposts (in this case, 2) differs from the general posts_per_page set in Admin (say, 5). I also have this problem on my WordPress.
Say Category 3 has 11 posts, and we want to implement the code to show 11/2 = 6 pages. If the general posts_per_page in Admin is set to 5, the code will only generate 11/5 = 3 pages. When you click through the links, the latest one and two posts will show on the first page, the latest three & four on the second page, and the latest five & six on the third page. However earlier pages will not be linked.
I have tried setting posts_per_page in query_post:
<?php
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=3&showposts=2&paged=$page&posts_per_page=2");
?>
Too bad that the problem persists.
What do you think, Kafkaesqui?
Also, none of these solutions appear to incorporate the time issue. I’m trying to limit the front page to only a single day’s posts. Any ideas?
EDIT: The answer to one of my questions is here: http://codex.wordpress.org/Template_Tags/query_posts
That helped me to set the parameters in the query_posts correctly, but nothing much happened. I had already set the options for posts on the front page via the dashboard, so nothing visibly happened. The posts_nav_link still isn’t on the page, which is my main problem.
Bump.
Is there any development in this? I have the very same problem, when showposts and the parameter in the admin page are different, the next/previous links do ont show up.
Any suggetsion?
Davide
I am also developing a theme in which certain views use query_posts
with an added showposts
parameter (a la Kafkaesqui’s code above) in order to force a number of posts to display that is different from the number set by “Show at most” under admin->Options->Reading, and I also ran into the problem of posts_nav_link
miscalculating the correct total number of results pages and therefore not displaying when it should. (Actually, because my showposts
parameter is higher than my “Show at most” setting, posts_nav_link
‘s misbehavior was that it showed an older-posts link when it shouldn’t have. But the problem is the same either way: posts_nav_link
calculates paging on the basis of the default “Show at post” setting, even though it has effectively been overridden.) My current solution, which seems to work, is to set the global $posts_per_page = [showposts value]
right after the query_posts
call. Kafkaesqui’s code would be amended to:
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=3&showposts=2&paged=$page");
$posts_per_page = 2
So my question is: Is it an unsafe practice for a theme to be meddling with $posts_per_page
like this, even though it is logical (as far as I can see) for the $posts_per_page
value to change to correspond to the showposts
query-variable?