简体   繁体   English

WordPress:posts_per_page无法处理存档页面

[英]WordPress: posts_per_page not working on archive pages

I've a custom loop which should display 3 projects per category in a random order. 我有一个自定义循环,它应该以随机顺序显示每个类别3个项目。 The problem is, that the loop always shows all projects in that category. 问题是,循环始终显示该类别中的所有项目。

I've tested the the code on a single page and it works how it should and only showed 3 projects. 我已经在单个页面上测试了代码,它的工作原理应该如何,只显示了3个项目。

So I guess it has something to do with the archive page?! 所以我想这与存档页面有关?!

Here's ist the loop itself: 这是循环本身:

<?php

        $args_thema = array (
            'post_type' => array( 'project' ),
            'orderby' => 'rand',
            'posts_per_page'    => 3,
            'paged'             => $paged,
            //'ignore_sticky_posts'    => 1,
            'tax_query' => array(
                array(
                    'taxonomy' => 'project-category',
                    'field'    => 'slug',
                    'terms'    => $category->slug,
                ),
            ),
        );

        $query_thema = new WP_Query( $args_thema ); if ( $query_thema->have_posts() ) : ?>
        <ul class="">
            <?php $i = 0; while ( $query_thema->have_posts() ) : $query_thema->the_post(); $i++; // echo $i; ?>
                <li class="">
                    <a class="url uid" href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
                        <?php the_title(); ?>
                    </a>
                </li>
            <?php endwhile; ?>
        </ul>
        <?php else : ?>

        <?php endif; wp_reset_postdata(); ?>

And here's the full code (I guess not that relevant): 这是完整的代码(我猜不相关):

<?php

    $args       = array('hide_empty' => '0', 'taxonomy' => 'project-category', 'orderby' => 'name', 'order' => 'ASC', 'parent' => 0 );
    $categories = get_categories($args);

    foreach($categories as $category) {

?>
<div class="row">
    <div class="col-lg-4">

        <?php
            $term_child = get_term_by('slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
            $args_child = array('hide_empty' => '0', 'taxonomy' => 'project-category', 'orderby' => 'name', 'order' => 'ASC', 'parent' => $category->term_id );
        ?>

        <h4><a href="<?php echo get_term_link($category->slug, 'project-category')  ?>" title="<?php echo $category->name ?>"><?php echo $category->name; ?></a></h4>

    </div>
    <div class="col-lg-8">

        <?php

        $args_thema = array (
            'post_type' => array( 'project' ),
            'orderby' => 'rand',
            'posts_per_page'    => 3,
            'paged'             => $paged,
            //'ignore_sticky_posts'    => 1,
            'tax_query' => array(
                array(
                    'taxonomy' => 'project-category',
                    'field'    => 'slug',
                    'terms'    => $category->slug,
                ),
            ),
        );

        $query_thema = new WP_Query( $args_thema ); if ( $query_thema->have_posts() ) : ?>
        <ul class="">
            <?php $i = 0; while ( $query_thema->have_posts() ) : $query_thema->the_post(); $i++; // echo $i; ?>
                <li class="">
                    <a class="url uid" href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
                        <?php the_title(); ?>
                    </a>
                </li>
            <?php endwhile; ?>
        </ul>
        <?php else : ?>

        <?php endif; wp_reset_postdata(); ?>

    </div>
</div>

<?php } ?>

Sorry, it was an extra function which sets the archive posts to 99. 对不起,这是一个额外的功能,它将存档帖子设置为99。

Istead of is_post_type_archive I used is_archive Isreg of is_post_type_archive我用的是is_archive

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM