WordPress: posts_per_page не работает на страницах архива - PullRequest
0 голосов
/ 16 мая 2019

У меня есть пользовательский цикл, который должен отображать 3 проекта в каждой категории в случайном порядке.Проблема в том, что цикл всегда показывает все проекты в этой категории.

Я протестировал код на одной странице, и он работает так, как должен, и показал только 3 проекта.

Так что я думаю, это как-то связано со страницей архива?!

Вот сам цикл:

<?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(); ?>

А вот полный код (я думаю, что это не так):

<?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 } ?>

1 Ответ

0 голосов
/ 16 мая 2019

Извините, это была дополнительная функция, которая устанавливает архив сообщений на 99.

Istead of is_post_type_archive Я использовал is_archive

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...