رفتن به مطلب

خطای 404 در pagination محصولات ووکامرسی


younes

پست های پیشنهاد شده

سلام دوستان

کد حلقه برای نمایش محصولات ووکامرسی

<div class="products-container">
  <?php
                 global $product;

     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
     $posts_per_page = get_option('posts_per_page');
     $args = array(
      'post_type' => 'product',
      'posts_per_page' => $posts_per_page,
      'paged' => $paged
     );
     $query = new WP_Query($args);

     while ($query->have_posts()) :
      $query->the_post();
                    ?>


  <?php endwhile; ?>
</div>

<?php
    bootstrap_pagination();
?>

کد pagination

function bootstrap_pagination() {
    global $wp_query;

    $posts_per_page = get_option('posts_per_page'); 
    $total_products = $wp_query->found_posts; // تعداد کل محصولات

    if ($total_products > $posts_per_page) { // اگر تعداد محصولات کل بیشتر از تعداد محصولات در هر صفحه باشد
        $big = 999999999; 

        $paginate_links = paginate_links(array(
            'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
            'format' => '?paged=%#%',
            'current' => max(1, get_query_var('paged')),
            'total' => ceil($total_products / $posts_per_page),
            'prev_text' => __('Previous', 'textdomain'),
            'next_text' => __('Next', 'textdomain'),
            'type' => 'array'
        ));

        if ($paginate_links) {
            echo '<nav class="pagination-wrapper"><ul class="pagination m-0">';

            foreach ($paginate_links as $link) {
                $active_class = strpos($link, 'current') !== false ? 'active' : '';

                echo '<li class="page-item ' . $active_class . '">' . str_replace('page-numbers', 'page-link', $link) . '</li>';
            }

            echo '</ul></nav>';
        }
    } elseif ($total_products > 0) { // اگر تعداد محصولات کل بیشتر از صفر و کمتر از تعداد محصولات در هر صفحه باشد
        echo '<nav class="pagination-wrapper"><ul class="pagination m-0">';
        echo '<li class="page-item active"><span class="page-link">1</span></li>'; // نمایش صفحه اول

        // نمایش محصولات باقیمانده در صفحه آخر
        $remaining_products = $total_products % $posts_per_page;
        if ($remaining_products > 0) {
            echo '<li class="page-item"><a class="page-link" href="' . get_pagenum_link(2) . '">2</a></li>'; // نمایش صفحه دوم
        }

        echo '</ul></nav>';
    }
}

 

من 26 محصول تو سایتم دارم. این دو کد هم تعداد صفحات رو درست به دست می ارن و هم تعداد محصولات رو. مشکل بنده اینه که در هنگام پیمایش صفحات با خطای 404 مواجه میشم. ممنون میشم راهنمایی بفرمایید. وردپرس بنده هم خام هست و هیچ افزونه اضافی نصب نکردم که بگم مشکل از افزونه های دیگس

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...