【问题标题】:Adding Pagination to WordPress Page Templates向 WordPress 页面模板添加分页
【发布时间】:2015-08-07 16:10:39
【问题描述】:

我从现有主题(One Engine Theme)构建了一个 wordpress 主题。该网站已启动,除了分页之外,一切似乎都运行良好。我已经尝试了很多东西,但未能让它发挥作用。所有模板页面都打算在某个时候分页,但似乎没有一个工作。下面是博客页面模板的循环代码:

<?php
  $newsposts = get_posts();
  foreach($newsposts as $post) :
  setup_postdata($post); ?>

//the html codes are added here

<?php endforeach; ?>

我想将每页的帖子设为 4,并添加默认的 wordpress 分页功能:

<?php posts_nav_link(); ?>

这里的页面模板是blog.php,你可以在这里看到页面的实际效果:www.kayodeolusoji.net/blog 您的帮助将不胜感激!

【问题讨论】:

  • 不要将get_posts 用于分页查询。 get_posts 合法地破坏了分页。而是使用WP_Query

标签: php wordpress pagination


【解决方案1】:

试试这个:

我用 WP_Query 在 $args 中添加了一些“分页”属性

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;        
            $posts_per_page=4;          
            $args = array(          
                'paged' => $paged,
                'posts_per_page'=>$posts_per_page
            );          
            $newsposts = new WP_Query($args);
              while($newsposts->have_posts()) :$newsposts->the_post();          
              echo $post->ID.'<br />';
              endwhile; 
              wp_reset_query();
            global $wp_query;
            $big = 999999999; 
            echo paginate_links( array(
                'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                'format' => '?paged=%#%',
                'current' => max( 1, get_query_var('paged') ),
                'total' => $newsposts->max_num_pages 
            ) );

【讨论】:

    【解决方案2】:

    经过几次试验,我能够修复。这就是我所做的。

    <?php
      $temp = $wp_query;
      $wp_query = null;
      $wp_query = new WP_Query();
      $wp_query->query('showposts=4'.'&paged='.$paged);
      while ($wp_query->have_posts()) : $wp_query->the_post(); 
    ?>     
    
    //the html codes are added here  
    
    <?php endwhile; ?>
    <nav>
      <?php //the pagination codes ?>
    </nav>
    
    <?php
     $wp_query = null;
     $wp_query = $temp;  // Reset
    ?>  
    

    【讨论】:

      猜你喜欢
      • 2012-10-08
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2013-05-30
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多