@kaidos

Как сделать проверку на какой странице поста находишься в WordPress?

С обычной пагинацией не как не получается настроить под свою разметку.
Решил обойти и просто при нажатии на кнопки переходило на след. страницу с постами /pagename/pagenumber+1
Но столкнулся с такой проблемой что по кнопке бесконечно переходит на +1 страницу.
Можно ли сделать проверку если на след. странице нет постов то чтобы дальше не переходило?
Мой код:
<main class="jobs_body">

    <div class="container">

            <div class="job_list">
                
                <?php
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

            $args = array(
                'post_type'=>'jobss', // Your post type name
                'posts_per_page' => 3,
                'paged' => $paged,
            );

            $loop = new WP_Query( $args );
            if ( $loop->have_posts() ) {
                while ( $loop->have_posts() ) : $loop->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 endwhile;

                $total_pages = $loop->max_num_pages;
            }
            wp_reset_postdata();
            ?>
                
                
            </div>
            
        <div class="jobs_btn">

            <div class="jbtn_wrapper">
                
                <?php 
                    if ($total_pages > 1){

                        $current_page = max(1, get_query_var('paged'));

                        
                    }    
                $prev_url = get_permalink( get_pagenum_link(2) ->ID ); // предыдущая
                $next_url = get_permalink( get_pagenum_link(1) ->ID ); // следующая
                ?>
                <button class="next" onclick="window.location.href = '/jobs/page/<?=$current_page + 1?>';">Далее</button>

                <div class="arrow_body">

                    <div class="arrow" onclick="window.location.href = '/jobs/<?=$current_page - 1?>';"><ion-icon name="chevron-back-outline"></ion-icon></div>
                    <input type="number" min="1" value="<?=$current_page?>" class="num_page">
                    <div class="arrow" onclick="window.location.href = '/jobs/page/<?=$current_page + 1?>';"><ion-icon name="chevron-forward-outline"></ion-icon></div>

                </div>

            </div>

        </div>

    </div>

</main>
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
@kaidos Автор вопроса
Ахах, решение было в моем же коде.
<?php if($current_page + 1 > $total_pages){?>
    <button class="next" onclick="window.location.href = '/jobs/page/<?=$current_page?>';">Далее</button>
<?php } 
else {
?>
    <button class="next" onclick="window.location.href = '/jobs/page/<?=$current_page + 1?>';">Далее</button>
<?php }
?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HighTechLowLife
@HighTechLowLife
<?php if ($current_page > 1): ?>
    <div class="arrow" onclick="window.location.href = '/jobs/<?=$current_page - 1?>';"><ion-icon name="chevron-back-outline"></ion-icon></div>
<?php endif ?>
<?php if ($current_page < $total_pages): ?>
    <div class="arrow" onclick="window.location.href = '/jobs/page/<?=$current_page + 1?>';"><ion-icon name="chevron-forward-outline"></ion-icon></div>
<?php endif ?>


PS: onlick с js — это, мягко говоря, плохое решение. Лучше сделать ссылкой, а нужное отображение поправить с помощью CSS.
<a href="/jobs/<?=$current_page - 1?>" class="arrow">...</a>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы