【问题标题】:Wordpress - Display only posts in the past breaking paginationWordpress - 仅显示过去打破分页的帖子
【发布时间】:2014-03-08 12:14:17
【问题描述】:

我有一个显示“事件”自定义帖子类型的事件页面。在页面顶部,我在即将发生的事件列表中有 2 个即将发布的帖子,然后在底部,我在过去的事件列表中有 3 个过去的事件。根据“事件日期”自定义字段是否过去,帖子会显示在每个部分中。过去的事件使用 WP page navi 插件对帖子进行分页。 'posts_per_page' 设置为 1 作为测试。

应该有 3 个页面分别显示 1 个过去的帖子。不幸的是,分页显示 5 页,前两页没有显示任何帖子,好像即将发布的帖子列表中的帖子表现得像鬼一样。我已经删除了即将发布的帖子列表作为测试,但这没有任何区别。

有人知道这是什么原因吗?我不知道。谢谢。

<?php
    $temp_post = $post; // Store the Page the Post

    // Get the current date
    $current_date = date('M d, Y', time());
    $current_date = strtotime( $current_date );

            $wp_query= null;
            $wp_query = new WP_Query();
            $args = array( 'post_type' => 'events','posts_per_page' => 1,'paged' => $paged,'meta_key' => 'event_date', 'orderby' => 'meta_value_num', 'order' => 'DESC');
            $wp_query->query( $args );

            if ( $wp_query->have_posts() ) : 
            while ( $wp_query->have_posts() ) : $wp_query->the_post(); 

               // Get the date custom field
                $post_date = get_field('event_date');
                $post_date = strtotime( $post_date );

                // If older than post date, don't show it
                if(  $current_date > $post_date ): ?>

        MY POST CONTENT GOES HERE

        <?php endif; // END DATE FILTER ?>
        <?php endwhile; //END LOOP ?>

        <?php /* Start wp-pagenavi support */ ?>
        <?php if(function_exists('wp_pagenavi') ) : 
            echo '<nav class="pag">'; ?>
            <?php wp_pagenavi(); ?>
            <?php echo '</nav>'; ?>
        <?php else: ?>  
            <?php twentyeleven_content_nav( 'nav-below' ); ?>
        <?php endif; ?><?php /* End wp-pagenavi support */ ?>

    <?php endif; ?>
    <?php $post = $temp_post; // Reset the Post ?>

【问题讨论】:

    标签: wordpress pagination


    【解决方案1】:

    它就像鬼一样,因为你没有表现出来。您在页面底部显示导航。查询返回 5 页,因此导航将针对 5 页。

    但如果帖子不符合此条件,您不会显示帖子

    // If older than post date, don't show it
    if(  $current_date > $post_date ): ?>
    

    这就是这些帖子没有显示的原因。删除该条件,您将看到所有帖子都按原样显示。

    如果您想以这种方式显示分页,则必须限制查询本身返回的帖子数量。

    【讨论】:

      【解决方案2】:

      非常感谢,我设法朝着正确的方向努力解决了这个问题。

          // Get the current date
          $current_date = date('Ymd', time());
      
      
                  $wp_query= null;
                  $wp_query = new WP_Query();
                  $args = array( 
                                  'post_type' => 'events',
                                  'posts_per_page' => 1,
                                  'paged' => $paged, 
                                  'orderby' => 'meta_value_num', 
                                  'order' => 'DESC',
                                  'meta_key' => 'event_date', 
                                  'meta_query' => array(
                                                      array(
                                                              'key' => 'event_date',
                                                              'value' => $current_date,
                                                              'compare' => '<',
                                                              'type' => 'CHAR'
                                                          )
                                              )
                                  );
      
                  $wp_query->query( $args );
      
                  if ( $wp_query->have_posts() ) : 
                  while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
      
                  MY POST CONTENT HERE
      
      
              <?php //endif; // END DATE FILTER ?>
              <?php endwhile; //END LOOP ?>
      
              <?php /* Start wp-pagenavi support */ ?>
              <?php if(function_exists('wp_pagenavi') ) : 
                  echo '<nav class="pag">'; ?>
                  <?php wp_pagenavi(); ?>
                  <?php echo '</nav>'; ?>
              <?php endif; ?><?php /* End wp-pagenavi support */ ?>
      
          <?php endif; ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多