Старые посты и новые посты Кодекс Wordpress не работает на моей странице блога

У меня есть веб-сайт, где я подал в суд на WordPress Codex, чтобы разместить старые и новые сообщения, но это не даст результата. Я не очень профессионал в отладке кода. Может ли кто-нибудь помочь мне, пожалуйста. Я также прочитал много статей и постов об этом, но у меня не было ответа, надеюсь, что кто-то может мне помочь. большое спасибо

<div id="main" class="blog-list-page">
    <div class="container">
        <div class="section">
            <?php while ( have_posts() ) : the_post(); ?>
                <article <?php post_class(); ?>>
                    <header class="page-header">
                        <!--<h1 class="page-title"><?php //the_title(); ?></h1>-->
                    </header>
                    <div class="entry-content">
                        <?php the_content(); ?>
                    </div>
                </article>
            <?php endwhile; ?>
        </div>
        <div class="section blog-posts-list">
            <?php
                $args = [
        'posts_per_page'   => 10,
                    'offset'  => 0,
                    'orderby' => 'post_date',
                    'order'   => 'DESC',
                    'post_type' => 'post',
                    'post_status' => 'publish',
                ];
                $posts= get_posts( $args );

                foreach ( $posts as $post ) :
                    setup_postdata($post);
            ?>

            <article class="clearfix">
                <div class="post-category">
                    <?php
                        $categories = get_the_category();
                        echo $categories[0]->name;
                    ?>
                </div>
                <a href="<?= the_permalink(); ?>">
                    <h2><?php the_title(); ?></h2>
                </a>
                <div class="meta">
                    <span class="author"></span>
                    <span class="timestamp"></span>
                </div>
                <?php if (has_post_thumbnail()) : ?>
                    <a href="<?= the_permalink(); ?>" class="post-thumbnail">
                        <?= the_post_thumbnail(); ?>
                    </a>
                <?php endif; ?>
                <div class="excerpt">
                    <?php the_excerpt(); ?>
                </div>
                <div>
                    <a href="<?= the_permalink(); ?>" class="read-more-link">Read more...</a>
                </div>
            </article>

            <?php
                endforeach;
            ?>

        </div>

    </div>
</div>

1 ответ

Решение

Не использовать get_posts для разбитых на страницы запросов, поскольку это не предназначено для этого. get_posts юридически нарушает нумерацию страниц, чтобы ускорить не нумерацию страниц no_found_rows=true в WP_Query, Также, get_posts только возвращает $posts собственность от WP_Query объект, так что это все вместе делает нумерацию страниц get_posts полный кошмар.

Для разбитых на страницы запросов вы должны использовать WP_Query вместо.

ДОПОЛНИТЕЛЬНЫЕ РЕСУРСЫ

  • next_posts_link()

  • previous_posts_link()

Другие вопросы по тегам