Сообщения WordPress не нумеруются правильно - PullRequest
0 голосов
/ 12 сентября 2018

У меня странная проблема с моими постами в WordPress.У меня есть статическая первая страница и страница поста под названием блог.У меня есть шаблон 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 76 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 голосов
/ 12 сентября 2018

Итак, я обнаружил проблему, которой у меня никогда не было. С помощью приведенных выше комментариев от Панкаджа Вермы и Чарана Кумара я проверил параметр menu_order в аргументах. И привет, когда менял 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,
);

Надеюсь, что это поможет всем, у кого есть подобные проблемы, и спасибо всем, кто прокомментировал мой пост, они действительно помогли решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...