رفتن به مطلب

خطای 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 مواجه میشم. ممنون میشم راهنمایی بفرمایید. وردپرس بنده هم خام هست و هیچ افزونه اضافی نصب نکردم که بگم مشکل از افزونه های دیگس

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...