posts_per_page只返回一个帖子

时间:2017-05-03 20:14:58

标签: php wordpress

我有这个wp_query,但它只返回1个帖子。我想让它返回'目录中的任何内容。带有标记' pick'的类别。我知道posts_per_page可能存在问题,但没有任何工作(我已经搜索了很多)以使查询显示多个帖子。任何帮助都会很棒。

<?php // The Query

            wp_reset_query();

            global $wp_query;

            $term = $wp_query->queried_object;

            $args=array(
                'ignore_sticky_posts' => true,
                'posts_per_page' => -1,
                'post_type' => 'directory',
                'suppress_filters' => true,
                'tag' => 'picks',
                'tax_query' => array(
                array(
                    'taxonomy'  => $term->taxonomy,
                    'field'     => 'slug',
                    'terms'     => $term->slug,
                    )
                )
            );

            $new_query = new WP_Query($args);

        if ( $new_query->have_posts()) : $new_query->the_post(); ?>

            <article <?php post_class('post-tile'); ?>>
                <a href="<?php the_permalink() ?>" rel="bookmark">
                <?php
                    $post_thumbnail_id = get_post_thumbnail_id( );
                    $imagesized = wp_get_attachment_image_src( $post_thumbnail_id, 'big-post-thumb');
                    if ($imagesized[1] == 308) {
                        the_post_thumbnail('big-post-thumb');
                    } else {
                        the_post_thumbnail('cat-post-thumb');
                    }
                ?>
                <h3><?php the_title(); ?></h3>
                <div class="intro">
                    <p><?php echo get_excerpt(140); ?></p>
                </div>
                </a>
            </article>
            <?php wp_reset_postdata(); else : ?>
            <p>No picks as yet&hellip;</p>
        <?php endif; ?>

    </div>

1 个答案:

答案 0 :(得分:0)

问题不在于posts_per_page,而是缺少关键组件的循环。它没有while声明。

目前你所有的循环都在显示第一篇文章。您需要while语句才能遍历所有帖子。

更改此行:

if ( $new_query->have_posts()) : $new_query->the_post(); ?>

对此:

if ( $new_query->have_posts() ) : while ( $new_query->have_posts() ) : $new_query->the_post(); ?>

这一行:

<?php wp_reset_postdata(); else : ?>

对此:

<?php wp_reset_postdata(); endwhile; else : ?>