แก้บั๊ก Woocommerce pagination คลิกหน้าต่อไปไม่ได้

สวัสดีครับผม สำหรับบทความนี้จะขอพูดถึงเรื่องเกี่ยวกับการแก้บั๊กในการใช้ Woocommerce หน่อยนะครับ คือเรื่องมันมีอยู่ว่า ผมพัฒนาเว็บไซต์ให้ลูกค้าสองท่าน โดยทั้งสองท่านต้องใช้งาน Woocommerce เพราะจะนำมามาเป็นเว็บขายของนั่นเอง แต่ทำไปทำมา ก็สังเกตว่า เอ๊ะ ทำไมตัวแบ่งหน้าที่เป็นคลิกไปยังหน้า 1, 2, 3, … อะไรเนี่ย มันไม่ทำงาน แล้วดูที่ url มันก็ขึ้น #038; แทนที่จะขึ้น & แบบนี้

คือถ้าเราคุ้นเคยกับ woocommerce เวลาเราคลิกแบ่งหน้า ตรง url มันควรจะเป็นประมาณนี้ครับ post_type=product&paged=3 อะไรทำนองนี้ แต่ในเคสนี้มันดันขึ้น post_type=product;#038;paged=3 ราวๆนี้ ซึ่งแน่นอน มันก็ใช้งานไม่ได้

หลังจากที่ลองนั่งหาข้อมูลดูแล้ว ผมก็ว่ามันน่าจะเป็นบั๊กของ Woocommerce ครับ เพราะโอกาสที่ธีมสองตัวจะมีข้อผิดพลาดเหมือนกัน น้อยมาก (ธีมหนึ่งผมพัฒนาเอง อีกธีมหนึ่งลูกค้าเตรียมไว้ให้)

และนี่คือวิธีการแก้ปัญหานะครับ

ให้เราเปิดไฟล์ pagination.php ที่อยู่ในโฟลเดอร์ woocommerce/loop/ มาแล้วแก้โค้ดตรง nav ให้เป็นแบบนี้ครับ


<nav class="woocommerce-pagination">
<?php
echo str_replace( '#038;','&', paginate_links( apply_filters( 'woocommerce_pagination_args', array(
'base' => esc_url( str_replace( 999999999, '%#%', remove_query_arg( 'add-to-cart', htmlspecialchars_decode( get_pagenum_link( 999999999 ) ) ) ) ),
'format' => '',
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $wp_query->max_num_pages,
'prev_text' => '&larr;',
'next_text' => '&rarr;',
'type' => 'list',
'end_size' => 3,
'mid_size' => 3
) ) ) );
?>
</nav>

โดยโค้ดข้างต้น จะเป็นการ Replace #038; ให้กลายเป็น & นั่นเอง
ถ้าใครเจอเหตุการณ์แบบนี้ก็ลองนำโค้ดนี้ไปใช้ดูนะครับผม

แหล่งอ้างอิง

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้

  • คุกกี้เพื่อการวิเคราะห์

    คุกกี้ประเภทนี้จะทำการเก็บข้อมูลการใช้งานเว็บไซต์ของคุณ เพื่อเป็นประโยชน์ในการวัดผล ปรับปรุง และพัฒนาประสบการณ์ที่ดีในการใช้งานเว็บไซต์ ถ้าหากท่านไม่ยินยอมให้เราใช้คุกกี้นี้ เราจะไม่สามารถวัดผล ปรับปรุงและพัฒนาเว็บไซต์ได้

  • คุกกี้เพื่อปรับเนื้อหาให้เข้ากับกลุ่มเป้าหมาย

    คุกกี้ประเภทนี้จะเก็บข้อมูลต่าง ๆ รวมทั้งข้อมูลวส่วนบบุคลเกี่ยวกับตัวคุณเพื่อเราสามารถนำมาวิเคราะห์ และนำเสนอเนื้อหา ให้ตรงกับความเหมาะสมกับความสนใจของคุณ ถ้าหากคุณไม่ยินยอมเราจะไม่สามารถนำเสนอเนื้อหาและโฆษณาได้ไม่ตรงกับความสนใจของคุณ

บันทึก