@zanzoS

Как кастомизировать пагинацию WordPress?

Мой код вывода постов:
<?php 
    $current = absint(
        max(
            1,
            get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' )
        )
        );
        $posts_per_page = 3;
        $query          = new WP_Query(
        [
            'post_type'      => 'job',
            'posts_per_page' => $posts_per_page,
            'paged'          => $current,
        'orderby'  => [ 'meta_value_num'=>'ASC' ]
        ]
        );
        if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            ?>
            <div class="job_item">

                <p class="jobs_title"><?php the_field('jobs__title') ?></p>
                <p class="jobs_descript"><?php the_field('jobs__description') ?></p>
                <p class="jobs_descript_full"><?php the_field('jobs__more__description') ?></p>
                <a class="jobs_more">Подробнее <span><ion-icon name="chevron-down-outline"></ion-icon></span></a>

            </div>
        <?php
        }
        wp_reset_postdata();

        echo wp_kses_post(
            paginate_links(
            [
                'total'   => $query->max_num_pages,
                'current' => $current,
            ]
            )
        );
        } else {
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
        nocache_headers();
        require get_404_template();
        }

?>

Как подстроить пагинацию под мою верстку?
<div class="container">

    <div class="jobs_btn">

        <div class="jbtn_wrapper">

            <button class="next">Далее</button>
            <button class="next">Назад</button>

            <div class="arrow_body">

                <div class="arrow"><ion-icon name="chevron-back-outline"></ion-icon></div>
                <input type="number" min="1" value="1" class="num_page">
                <div class="arrow"><ion-icon name="chevron-forward-outline"></ion-icon></div>

            </div>

        </div>

    </div>

</div>
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
В функции paginate_links() есть фильтр paginate_links_output, можете попробовать распарсить регулярками итоговый html

Или откройте функцию paginate_links(), посмотрите и скопируйте нужные запросы в свою функцию, а вывод верстки измените на свой

В вашей функции вообще ссылок нет, хотя задача paginate_links() именно в том и заключается чтобы получить и вывести ссылки. Уж не знаю, что по вашему должно происходить по кликам на кнопки и как WP должен понять какая ссылка следующая, а какая предыдущая, но вы хотя бы в дата-атрибуты их положите
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы