我知道这里有上千个分页问题,我已经看过了,但我似乎不知道我的问题出在哪里。这是自定义帖子类型存档模板上的循环,但它应该调用所有帖子,因为我将其用作博客。在模板的最顶端,是对特定页面的查询,但我认为这不是导致问题的原因。
发生的是,在第二页,我得到了一个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 »\', 0); ?></div>
<div class="nav-next"><?php previous_posts_link(\'« 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() ?>
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\');