分页在第一页重复发布几次


Pagination repeats posts several times on first page

我的网站有一个分页问题。我创建了一个事件列表,对于过去的事件,我添加了与category.php文件中相同的分页代码。不幸的是,这将在每页上多次输出过去事件的列表(例如在第1页上列出6次相同的事件,然后在第二页上列出6次其余事件)。我的代码有什么问题?

这里可以看到问题:http://www.mybeatfix-new.com

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts('paged='.$paged.'&cat='.$cat); ?>        

<?php if(have_posts()) : ?>                     
<?php while(have_posts()) : the_post(); ?>
<?php 
$eventquery = array (
    'post_type' => 'events',
    'orderby' => '_cmb_event-date',
    'order' => 'desc',
    'posts_per_page' => 5,
    'meta_value' => time(),
    'meta_key' => '_cmb_event-date',
    'meta_compare' => '<',
    'paged' => $paged,
    );
?>
<?php $myeventlist = new WP_Query($eventquery); ?>
<?php while ($myeventlist->have_posts()) : $myeventlist->the_post(); 
        $data_event     = get_post_meta($post->ID, '_cmb_event-date', true);
        $pretty_date = date('D M j Y', $data_event);
        $m_day = get_post_meta( $post->ID, '_cmb_e_day', true );
        $m_start_time = get_post_meta( $post->ID, '_cmb_e_start_time', true );
        $m_end_time = get_post_meta( $post->ID, '_cmb_e_end_time', true );
        $m_venue = get_post_meta( $post->ID, '_cmb_e_venue', true );
        $event_text     = get_post_meta($post->ID, "_cmb_e_details", true);
        $event_price = get_post_meta( $post->ID, '_cmb_e_price', true );
        $event_ticket_status = get_post_meta( $post->ID, '_cmb_e_ticket_status', true );
        $thumbnail = get_the_post_thumbnail($id, 'event-image');
?>
<div class="elist-single">
<div class="elist-thumb">
<a href="<?php the_permalink() ?>"><?php echo $thumbnail; ?></a></div>
<div class="elist-right">
<div class="elist-title">
<a href="<?php the_permalink() ?>"><?php echo ShortenText(get_the_title()); ?></a>
</div>

<div class="elist-date"><?php echo $pretty_date; ?> </div><br  />
<div class="elist-info">
<i class="icon-home"> <?php echo $m_venue; ?> </i><br  />
<i class="icon-time"> <?php echo $m_start_time; ?> - <?php echo $m_end_time; ?></i><br  />
<?php echo $event_price ?><br  />
</div><br  />

</div>
</div>

<?php endwhile;?>
<?php endwhile; endif;?>

<?php wp_link_pages(); ?>
<?php get_template_part ('inc/pagination');?>

基本上你已经创建了一个循环中的循环。你说的是,当你有帖子循环通过所有的帖子,所以它这样做了6次,大概是因为你有6个帖子。

如果您使用两个循环,您需要在第一个循环之后<?php endwhile;?>WP_Query()之后wp_reset_postdata();,但您应该能够在一个循环中完成。WP_Query应该为您提供所需的所有信息,并附带分页。

参考:WP Query