Pagination gives 404 error

时间:2012-08-04 作者:Tommixoft

似乎WP团队从未解决过WP的这个bug。

我有自定义的帖子类型,我的url结构是/%类别%/%postname%/如果我点击第二页,我会得到404错误。

我尝试了在互联网上找到的所有东西,插件和代码。。我甚至将我的分页基url更改为非页面,所以wp不认为我在搜索名为page的帖子类型。但还是没什么。

是的,我做了permalinks的重新保存过程,我试着恢复到deafault,然后返回,仍然没有什么。。。下载的wp\\U navi仍然相同。。

我能做些什么来解决这个问题吗?

1 个回复
最合适的回答,由SO网友:Kharis Blank 整理而成

你试过这个吗?

我以前也遇到过同样的问题。我做了这些步骤,它对我很有用。

我在函数中使用此代码。php

// New method of WordPress Query since 3.4.1
if ( ! function_exists( \'ucc_add_cpts_to_pre_get_posts\' ) ) {
    function ucc_add_cpts_to_pre_get_posts( $query ) {
    if ( $query->is_main_query() && ! is_post_type_archive() && ! is_archive() && ! is_search() && ! is_singular() && ! is_404() ) {
        $my_post_type = get_query_var( \'post_type\' );
        if ( empty( $my_post_type ) ) {
            $query->set(\'post_type\', \'your_post_type_name\'); // replace your_post_type_name with yours
        }
    }
}
}add_action( \'pre_get_posts\', \'ucc_add_cpts_to_pre_get_posts\' );
然后,我在我的single{post type}中使用它。php

<?php $paged = 1;
  if ( get_query_var(\'paged\') ) $paged = get_query_var(\'paged\');
  if ( get_query_var(\'page\') ) $paged = get_query_var(\'page\'); 
  if (have_posts()): 
?>


<?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
  $loop = new WP_Query( array(
    \'post_type\' => \'your_post_type_name\', // replace your_post_type_name with yours
    \'posts_per_page\' => PER_PAGE_DEFAULT, // Displaying number posts per page equals to Reading Settings in WP admin
    \'paged\'=>$paged
  )); 
?>

<?php query_posts( \'&post_type=your_post_type_name&paged=\' . $paged );  ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

  <!-- The content is here -->

<?php endwhile; else: ?>
  <p>Not Found</p>
<?php endif; wp_reset_query(); ?>

<div class="navigation">
 <?php if(function_exists(\'wp_page_numbers\')) { wp_page_numbers(); } ?> 
</div>
在我的例子中,我使用wp页码插件。

希望它能解决你的问题。

结束

相关推荐

How to use pagination?

我有一个页面的以下代码,在这里我拉一张照片,标题和最后10篇文章的摘录。问题是,我不知道如何添加分页?我也安装了WP PageNavi。我已经看到一些类似的问题得到了解决,但我根本无法真正理解这个概念,我首先尝试确保这是可能的?<?php /* Template Name: Opinion */ ?> <?php get_header(); ?> <div id=\"primary\"> <div id=\"