WP-пагинация и исключение категории из страницы

Я пытаюсь использовать разбиение на страницы WP на странице архива сообщений, но исключаю сообщения из одной категории для отображения там.

Когда я добавляю это в свой код, на странице 2,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(); ?>

person Damir    schedule 26.11.2014    source источник


Ответы (2)


Этот код исправил мою страницу:

<?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(); ?>
person Damir    schedule 26.11.2014

Изменение, чтобы отразить решение OP для будущих читателей

Слегка измените query(), как показано ниже.

$args = array(
     'cat'=> -4, 
     'posts_per_page'=> 10,
     'paged'=> $paged
      );
person LumberHack    schedule 26.11.2014
comment
ваш комментарий каким-то образом помог мне, но предложенное решение не сработало, поэтому я сделал комбинацию вашего ответа и моего кода :) - person Damir; 27.11.2014
comment
Круто, пока исправили :) - person LumberHack; 27.11.2014