Pagination of posts in page
-
Hi Guys,
I have a page and in that page I load posts from a category:
$posts = get_posts('category=3&numberposts=4');
The problem i’m having here is that I can’t get any pagination to work.
I’ve tried thewp_paginate()
function and some other pagination functions, but they don’t work.I think it is because I don’t show the post from a category page, but from a page page. I do this because of the URL, I don’t want /category/categoryname/ but /pagename/
Any advice?
Thanks!
-
Follow the Steps:
1. download the paging plugin from devdevote.com/cms/wordpress-plugins/wp-paging/
2. put this plugin inside wp-content/plugins
3. activate the plugin
4. then,put the below code inside your file$result= new WP_Query(); $args = array( 'base' => add_query_arg( 'paged', '%#%' ), 'total' => $result->max_num_pages, 'current' => $page );
if (have_posts()) : while (have_posts()) : the_post();
…..echo wp_paging('total'.$search->max_num_pages);
Regards,
SenthilThanks Senthil! Neat plug-in, but I haven’t got it working yet. I think this is due to the way i collect the data:
$posts = get_posts('category=3'); foreach($posts AS $v){ //html } $args = array(/*stuff*/); if(function_exists('wp_paging')) echo wp_paging('show_all=true'); else echo "function does not exist!";
The plugin is installed correctly, do i need to do something with: “if (have_posts()) : while (have_posts()) : the_post();”??
I’m still a bit of a WordPress n00b..Thanks again!
ps.
I have been looking at “The loop”, but I don’t really see how I use this in combination with getting posts from a category?<?php /* Pagination */ $category_id = $_GET['category_id']; global $wp_query; $result = new WP_Query('cat='.$category_id); $args = array( 'base' => add_query_arg( 'paged', '%#%' ), 'total' => $result->max_num_pages, 'current' => $page ); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
…
<?php /* Pagination */ echo wp_paging('total='.$result->max_num_pages); ?>
Regards,
SenthilIn stead of get_posts use a regular loop with WP_query.
Put this before the loop:<?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1; ?> <?php $my_query = new WP_Query("paged=$page&category=3&numberposts=4"); ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
Hi Guys,
I still can’t get this working… This is what I have now:
<?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1; ?> <?php $my_query = new WP_Query("paged=$page&category=3&numberposts=4"); ?> <?php while($my_query->have_posts()){ $my_query->the_post(); echo the_title(); echo the_content(); } $args = array( 'base' => add_query_arg( 'paged', '%#%' ), 'total' => $my_query->max_num_pages, 'current' => $page ); if(function_exists('wp_paging')) echo wp_paging(); else echo "does not exist!"; ?>
the_title() and the_content() show correctly, but there is no paging…
global $wp_query; $result = new WP_Query('cat=3'); $args = array( 'base' => add_query_arg( 'paged', '%#%' ), 'total' => $result->max_num_pages, 'current' => $page ); if (have_posts()): while (have_posts()): the_post(); echo the_title(); echo the_content(); endwhile; endif; if(function_exists('wp_paging')) echo wp_paging(); else echo "does not exist!";
Not working at all…
Have you tried it with wp-pagenavi
I’ve done pagination of a category on a page with that plugin.
This was my loop:$page = (get_query_var('paged')) ? get_query_var('paged') : 1; $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $wp_query->query("paged=$page&cat=3"); if(function_exists('wp_pagenavi')) { wp_pagenavi(); } while ($wp_query->have_posts()) : $wp_query->the_post();
and ending of the loop with this
<?php endwhile ?> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?> <?php $wp_query = null; $wp_query = $temp; ?>
Otherwise try it with next_posts_link and previous_posts_link:
<?php next_posts_link('Older Entries ยป', 0); ?> <?php previous_posts_link('ยซ Newer Entries', '0') ?>
and see if that works.
Thanks Kees,
This works perfect!
Glad you got it working! Now, please use the dropdown at top right to mark this topic ‘Resolved’.
I’m back. I’ve just upgraded to WP3 and the paging doesn’t work anymore.
I’ve tried it with WP Paging, WP Paginate and WP Pagenavi…
The loop works fine and the posts are displayed correctly. but there is no navigation…
$wp_query = null; $wp_query = new WP_Query(); $wp_query->query("paged=$page&cat=".$this->category."&posts_per_page=".$this->postsPerPage); while ($wp_query->have_posts()): echo $wp_query->post->ID; //example endwhile; if(function_exists('wp_paging')){ $args = array( 'base' => add_query_arg( 'paged', '%#%' ), 'total' => $wp_query->max_num_pages, 'current' => $page ); wp_paging(); } else die("paging plug-in not installed!");
do you have this in your query as wel:
$page = (get_query_var('paged')) ? get_query_var('paged') : 1; $temp = $wp_query;
and after the loop:
<?php $wp_query = null; $wp_query = $temp; ?>
I already have that:
[Code moderated as per the Forum Rules. Please use the pastebin]
try putting this in your globals:
global $wp_query, $meta ,$paged;
sorry guys, i’ve been really stupid. I don’t have enough posts in this new install to show the paging ๐
* going to jump off a bridge
- The topic ‘Pagination of posts in page’ is closed to new replies.