WP-pagination并从页面中排除类别

时间:2014-11-26 21:50:26

标签: php html wordpress pagination

我正在尝试在帖子存档页面上使用WP分页,但不包括要在其中显示的一个类别的帖子。

当我将此添加到我的代码时,存档的page2,3,4 ...显示相同的前10个帖子:

<?php query_posts('cat=-4');?>

这是我的页面模板的完整代码,所以我将非常感谢您的所有帮助:

<?php 
/*
Template Name: Post archive
*/
?>

<?php get_header(); ?>

<div class="container">
        <div class="content col-md-9">
            <div class="home-content">          

                <!-- Show posts -->
                <?php 

                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

                    $args = array(
                                'paged'=> $paged, 
                                'posts_per_page'=> 10
                        );

                        query_posts($args); ?>
                    <?php query_posts('cat=-4');?>
                    <?php if ( have_posts() ) : while (have_posts()) : the_post(); ?>

                    <div style="float:left; margin:1%;">
                    <?php 
                    if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
                        the_post_thumbnail( 'thumbnail', array( 'class' => 'img-post')); // show featured image
                    }

                    ?>
                    </div>
                    <h1 class="post-thumb"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
                    <h4>Category: <?php the_category(', '); ?></h4>
                    <p><?php the_excerpt(); ?></p>
                    <hr style="margin-bottom:5%">
                    <?php endwhile; ?>
                    <!-- pagination -->
                    <div class="nav-previous alignleft" style="margin-top:-1%"><?php next_posts_link( 'See older posts' ); ?></div>
                    <div class="nav-next alignright" style="margin-top:-1%"><?php previous_posts_link( 'See newer posts' ); ?></div>
                    <?php else : ?>
                       <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
                    <?php endif; ?>

            </div>
        </div>

        <div class="col-md-3 sidebar unstyled">
                <?php dynamic_sidebar( 'home1' );   ?>
        </div>
        <div class="col-md-3 sidebar unstyled sidebar-space">
                <?php dynamic_sidebar( 'home2' );   ?>
        </div>
        <div class="col-md-3 sidebar unstyled sidebar-space">
                <?php dynamic_sidebar( 'articles1' );   ?>
        </div>

</div>
        </div>
    </body>
</html>

<?php get_footer(); ?>

2 个答案:

答案 0 :(得分:0)

修改以反映OP的解决方案,为未来的读者带来好处

稍微更改query(),如下所示

$args = array(
     'cat'=> -4, 
     'posts_per_page'=> 10,
     'paged'=> $paged
      );

答案 1 :(得分:0)

此代码修复了我的页面:

<?php 

                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

                    $args = array(
                                'cat'=> -4,
                                'paged'=> $paged, 
                                'posts_per_page'=> 10
                        );

                        query_posts($args); ?>

                    <?php if ( have_posts() ) : while (have_posts()) : the_post(); ?>