อับดับแรกท่านต้อง ดึงหมวดหมู่สินค้ามาก่อนครับ แล้วนำหมวดหมู่ทีได้ไป query
ผมจะยกตัวอย่างให้คราวๆ
$terms = get_the_terms( $post->ID , 'taxonomy name' );
// taxonomy name คือ register_taxonomy name คือชื่อหมวดหมู่ที่ท่านสร้างให้กับ post type product ถ้าเป็น post ธรรมดาที่มากับเวิร์ดเพรส ก็จะเป็น category
// ค่าที่ได้จะอยู่ในรูปแบบ array
foreach($terms as $term){
$terms_slug[] = $term->slug;
}
//ทำการวนลูป เอาค่า slug name เก็บเป็น array เพื่อนำไป query หรือจะเอาชื่อหมวดหมู่ก็ได้ แต่ผมไม่แนะนำเพราะจะมีปัญหาตอนชื่อหมวดหมู่มีช่องว่าง
$args = array(
'post__not_in' => array($post->ID), //ไม่แสดงสินค้า ณ ปัจจุบันที่แสดงอยู่
'posts_per_page '=> 5, // แสดง 5 รายการ
'tax_query' => array(
array(
'taxonomy' => 'taxonomy name',
'field' => 'slug', // query ที่ field slug
'terms' => $terms_slug, // ชื่อ slug name ที่เก็บไว้
)
),
'orderby' => 'rand', // แสดงแบบซุ่ม
);
$wp_query = new WP_Query($args);
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
......
<?php endwhile; ?>
<?php wp_reset_query(); ?> อย่าลืม reset query ด้วยล่ะ ^^
ได้แล้วครับ เปลี่ยนแค่ taxonomy name เป็น category-product ก็ได้เลย สุดยอดครับ
ปล. ปกติผมใช้ get_the_category() ไม่ได้ใช้ get_the_terms() สองตวนี้มันต่างกันยังไงเหรอครับ