在自定义帖子类型模板中使用QUERY_POST进行分页

时间:2013-07-10 作者:Josh M

我知道这里有上千个分页问题,我已经看过了,但我似乎不知道我的问题出在哪里。这是自定义帖子类型存档模板上的循环,但它应该调用所有帖子,因为我将其用作博客。在模板的最顶端,是对特定页面的查询,但我认为这不是导致问题的原因。

发生的是,在第二页,我得到了一个404错误。

<?php get_header(); ?>
<?php // query post #4606
$post_id = 4606;
$queried_post = get_post($post_id);
$title = $queried_post->post_title;?>
<?php echo $title;?>
<!-- The Actual Loop, with a count so that I can style the first post differently   -->
<?php $post = $posts[0]; $c=0;
$args = array(
    \'post_type\'=> \'post\',
    \'posts_per_page\' => 7,
    \'paged\' => ( get_query_var(\'paged\') ? get_query_var(\'paged\') : 1),
    );
query_posts($args);
while (have_posts()) : the_post();
?>
<!--Featured Post-->
<?php $c++;
if( !$paged && $c == 1) :?>
                <?php if ( has_post_thumbnail()) : ?>
                    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >
                        <?php the_post_thumbnail(\'archive-featured-img\', array(\'class\' => \'aligncenter\')); ?>
                    </a>
                <?php endif; ?>
                <!--the title and content etc.-->
<!--Other Posts-->
<?php else :?>           
                 <!--the title and content for all other posts-->         
<?php endif;?>
<?php endwhile; ?>
<!-- The end of the loop   -->
<!--Page Navigation-->
<?php if (  $wp_query->max_num_pages > 1 ) : ?>
                <div id="post-nav" class="cf">
<div class="nav-previous"><?php next_posts_link(\'Next Page &#187;\', 0); ?></div>
<div class="nav-next"><?php previous_posts_link(\'&#171; Previous Page\', 0); ?></div>
                </div>
<?php endif; ?>
<?php
wp_reset_query();  // Restore global post data
?>

        <!--SIDEBAR--repeats the page title from above, then dynamic sidebar-->      
                <h1><?php echo $title;?></h1>
                <?php echo $queried_post->post_content;?>

            <?php dynamic_sidebar( \'Main Blog Page Sidebar\' ); ?>

<?php get_footer() ?>

1 个回复
SO网友:Josh M

@谢谢,pre\\u get-posts似乎工作得很好。我之前没有想到这一点,我认为我的选择是在wp\\U query和query\\U帖子之间。

下面应该只更改“rg\\U博客”自定义帖子类型存档上的查询,对吗?

function blog_filter($query) {
  if ( !is_admin() && $query->is_main_query() ) {
    if ($query->is_post_type_archive(\'rg_blog\')) {
      $query->set(\'post_type\', \'post\');
    }
  }
}
add_action(\'pre_get_posts\',\'blog_filter\');

结束

相关推荐

WP_Query breaks pagination

我已经研究这个问题一周了。我搜索了无数没有回答这个问题的帖子。我的wp\\u查询似乎破坏了分页。我已经在这里浏览了很多关于wp\\U查询和分页的帖子,但仍然毫无乐趣。据我所知,它的设置是正确的。我有一个实例,它将在一个页面中显示所有帖子,而在另一个页面中,它会重复每个页面上的内容。请参阅下面的代码,以获取带注释的精简版本。有人知道问题出在哪里吗?<?php /* Let\'s asume that this is the search query in the