admin管理员组

文章数量:1336660

I'm using this code to display page pagination on my website. But when I click to go to the second page it shows me "Page not found" error.

Does someone know what is wrong with my code that is not displaying the posts on the second page?

<?php
$currCat = get_category(get_query_var('cat'));
$cat_name = $currCat->name;
$cat_id   = get_cat_ID( $cat_name );
?>

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query- 
>query('showposts=3&post_type=post&paged='.$paged.'&cat='.$cat_id);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>


<div class="module-container">;
<div class="content">;

<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); 
?></a>
</div>
</div>

<?php endwhile; ?>

<?php
global $wp_query;

 $big = 999999999; // need an unlikely integer
 echo '<div class="paginate-links">';
 echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) 
) ),
'format' => '?paged=%#%',
'prev_text' => __('<<'),
'next_text' => __('>>'),
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
) );
echo '</div>';
 ?>

I'm using this code to display page pagination on my website. But when I click to go to the second page it shows me "Page not found" error.

Does someone know what is wrong with my code that is not displaying the posts on the second page?

<?php
$currCat = get_category(get_query_var('cat'));
$cat_name = $currCat->name;
$cat_id   = get_cat_ID( $cat_name );
?>

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query- 
>query('showposts=3&post_type=post&paged='.$paged.'&cat='.$cat_id);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>


<div class="module-container">;
<div class="content">;

<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); 
?></a>
</div>
</div>

<?php endwhile; ?>

<?php
global $wp_query;

 $big = 999999999; // need an unlikely integer
 echo '<div class="paginate-links">';
 echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) 
) ),
'format' => '?paged=%#%',
'prev_text' => __('<<'),
'next_text' => __('>>'),
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
) );
echo '</div>';
 ?>
Share Improve this question asked Mar 26, 2018 at 1:19 user3507500user3507500 134 bronze badges 5
  • 1 A 404 is determined by the results of the main query, not the query you create in the template. Alter the main query with pre_get_posts rather than create a new query. – Milo Commented Mar 26, 2018 at 1:25
  • I fixed the problem. I had to change the amount of post per page in my WordPress dashboard > Settings > Reading > Blog pages show at most. – user3507500 Commented Mar 26, 2018 at 1:28
  • That doesn't really fix the problem, it just hides it. You'll have the same issue again when the number of pages in your custom query exceeds the number of pages in the main query. – Milo Commented Mar 26, 2018 at 1:30
  • Can you show me how do I add the action in my main query? – user3507500 Commented Mar 26, 2018 at 1:53
  • Have you read this? codex.wordpress/… – Ravi Commented May 7, 2019 at 12:17
Add a comment  | 

1 Answer 1

Reset to default -2

Just set the permalink to numeric ( Under Setting -> Permalinks ). This works for me.

本文标签: postsPage not found after clicking on pagination