WordPress帖子无法正确分页

时间:2018-09-12 11:59:11

标签: php wordpress posts

我的WordPress帖子有一个奇怪的问题。我有一个静态首页和一个称为Blog的帖子页。我有一个带有标准发布循环的home.php模板。

我在管理员中设置的帖子最多只能显示8个帖子,并且我具有<?php previous_posts_link(); ?><?php next_posts_link(); ?>链接。但是,当我启用最大帖子数限制和分页时,我的帖子顺序就会出错。

我没有依次显示帖子1 2 3 4 5 6 7 8和9 10,而是在第一页显示3 1 10 9 8 7 6 5在第二页显示了9 10 4 1。帖子9和10似乎重复了一次,而帖子2根本没有显示。

我尝试过wp_reset_postdata()并使用wp_query设置顺序和编号,但是仍然遇到相同的问题。我当前的模板是:

<?php if ( have_posts() ) : ?>
    <main id="main" class="site-main" role="main">
    <!-- start content -->
       <?php if ( is_home() && ! is_front_page() ) : ?>
         <header class="page-header">
            <h1 class="page-title"><?php single_post_title(); ?></h1>
         </header>
       <?php endif; ?>

        <?php
        $i = 1;
        $count_posts = wp_count_posts();
        if ( $count_posts ) {
          $published_posts = count( $count_posts->publish );
        }
        while ( have_posts() ) :
        the_post();

          if ( $i > 1 && $i !== $published_posts ) {
            echo '<hr />';
          }
             get_template_part( 'partials/content', get_post_format() );
          $i++;
        endwhile;
        ?>
    <!-- end content -->
    <!-- start post nav -->
    <?php previous_posts_link(); ?>
    <?php next_posts_link(); ?>
    <!-- end post nav -->

</main>
<!-- if no content -->
<?php
  else :
    get_template_part( 'partials/content', 'none' );
  endif;
?>

尝试wp_query时,我做到了:

   $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;     
   $args = array(
      'post_type' => 'post',
      'posts_per_page' => 8,
      'orderby' => 'menu_order',
      'order' => 'DESC',
      'post_status' => 'publish',
      'paged' => '$paged',
    );
    $loop = new WP_Query( $args );

我在调用分页链接后以wp_reset_postdata()结尾。

我只是想想是什么原因引起的,所以我想知道你们中的任何一个是否可以提供帮助?

感谢您抽出宝贵的时间阅读我的帖子。

1 个答案:

答案 0 :(得分:0)

因此,我找到了从未有过的问题。在Pankaj Verma和charan kumar的上述评论的帮助下,我检查了args中的menu_order参数。嘿,presto,当将menu_order更改为另一个参数参数时,它解决了我的问题。

在Google之后,我发现很多人的menu_order都存在相同的问题。以我个人的经验,使用它之前从未发生过。但这似乎是一个常见问题。

因此,为解决我的问题,我重新添加了wp_query并将选项更改为:

$args  = array(
    'post_type'      => 'post',
    'posts_per_page' => 8,
    'orderby'        => 'ID',
    'order'          => 'DESC',
    'post_status'    => 'publish',
    'paged'          => $paged,
);

希望这对遇到类似问题的所有人有所帮助,并感谢所有对我的帖子发表评论的人,他们对于解决这一问题确实很有帮助。