Пагинация не работает в произвольном типе сообщения - PullRequest
0 голосов
/ 08 мая 2020

Часть шаблона разбивки на страницы включает общую функцию разбивки на страницы со стилем. Часть шаблона работает для archive.php (это для "single", вы знаете файл wp по умолчанию), но не работает для пользовательского типа сообщения.

Почему бы и нет? Как решить?

<?php get_header(); ?>

<main role="main">
    <!-- section -->
    <?php get_template_part( 'breadcrumb' );?>

    <!-- Inner Pages Main Section -->
    <section class="ulockd-service-details">
        <div class="container">
            <div class="col-md-12">
                <div class="row">

                    <?php

                    /**
                     * Setup query to show the ‘services’ post type with ‘8’ posts.
                     * Output the title with an excerpt.
                     */
                    $args = array(
                        'post_type' => 'team',
                        'post_status' => 'publish',
                        'posts_per_page' => 1,
                    );

                    $loop = new WP_Query( $args );

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

                    ?>

                    <?php //if (have_posts()): while (have_posts()) : the_post(); ?>


                        <?php

                        if ( $thumbnail_id = get_post_thumbnail_id() ) {
                            if ( $image_src = wp_get_attachment_image_src( $thumbnail_id, 'normal-bg' ) )
                                ?>

                                <div class="col-md-12 ulockd-mrgn1210">
                                <div class="ulockd-project-sm-thumb">
                                <img class="img-responsive img-whp" src="<?php printf( '%s', esc_url($image_src[0]) ); ?>" alt="">
                            </div>
                            </div>

                            <?php

                        }

                        ?>

                        <div class="col-md-12 ulockd-mrgn1210">
                            <article class="ulockd-pd-content">
                                <div class="ulockd-bp-date">
                                    <ul class="list-inline">
                                        <li class="ulockd-bp-date-innner">On <a href="#"><span class="text-thm2"><?php the_time('j'); ?></span> / <?php the_time('F Y') ?></a></li>
                                        <li class="ulockd-bp-comment"><a href="#"><span class="flaticon-nurse-head text-thm1"></span> <?php the_author_posts_link(); ?></a></li>
                                        <li class="ulockd-bp-comment"><a href="#"><span class="flaticon-chat text-thm1"></span> <?php if (comments_open( get_the_ID() ) ) comments_popup_link( __( 'Leave your thoughts', 'html5blank' ), __( '1 Comment', 'html5blank' ), __( '% Comments', 'html5blank' )); ?></a></li>
                                        <li class="ulockd-bp-comment"><a href="#"><span class="flaticon-black-check-box text-thm1"></span> <?php the_category(); ?></a></li>
                                    </ul>
                                </div>
                                <h3><?php the_title(); ?> </h3>
                                <p class="project-dp-one"><?php html5wp_excerpt('html5wp_index'); // Build your custom callback length in functions.php ?></p>
                                <a class="btn btn-lg ulockd-btn-thm2" href="<?php the_permalink(); ?>"> Read More</a>
                            </article>
                        </div>

                        <?php get_template_part('pagination'); ?>
                    <?php endwhile; ?>

                    <?php else: ?>
                        <article>
                            <h2><?php _e( 'Sorry, nothing to display.', 'html5blank' ); ?></h2>
                        </article>
                    <?php endif; ?>

                </div></div></div></section>
    <?php get_footer(); ?>
</main>

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Я бы попробовал две вещи.

  1. Добавьте аргумент paged к вашим аргументам wp_query:

                $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;                   
    
                $args = array(
                    'post_type' => 'team',
                    'post_status' => 'publish',
                    'paged' => $paged,
                    'posts_per_page' => 1,
                );
    
  2. Поместите шаблон нумерации страниц за пределы l oop:

                <?php endwhile; ?>
                <?php get_template_part('pagination'); ?>
    
0 голосов
/ 08 мая 2020

Прежде всего, вам не нужно включать этот шаблон в while l oop. Это неправильно.

Затем, если вы хотите иметь страницу архива для вашего типа сообщения team, вам необходимо указать 'has_archive' => true в register_post_type() аргументах функции.

Также учтите при необходимости изменить название страницы архива по умолчанию. Если вы это сделаете, вам нужно открыть Settings > Permalinks для сброса структуры постоянных ссылок.

Затем вы можете использовать стандартный archive.php для всей страницы архива команды и стандартный template-parts/content.php для одного сообщения внутри l oop или перепишите любой из них, создав archive-team.php или content-team.php. И функция the_posts_pagination() будет работать на соответствующей странице архива (archive.php или archive-team.php).

...