ฉันไม่คิดว่าget_categories()
เป็นตัวเลือกที่ดีที่สุดสำหรับคุณในกรณีนี้เพราะมันจะส่งคืนสตริงที่มีหมวดหมู่ทั้งหมดที่ระบุไว้เป็นแท็ก anchor, ดีสำหรับการแสดง แต่ไม่ดีสำหรับการค้นหาในโค้ดว่าประเภทคืออะไร ตกลงดังนั้นสิ่งแรกที่คุณต้องทำคือหยิบวัตถุผลิตภัณฑ์ / โพสต์สำหรับหน้าปัจจุบันหากคุณยังไม่มี:
global $post;
จากนั้นคุณจะได้รับออบเจคคำประเภทผลิตภัณฑ์ (หมวดหมู่) สำหรับผลิตภัณฑ์ ที่นี่ฉันเปลี่ยนวัตถุคำประเภทเป็นอาร์เรย์ชื่อง่าย ๆ$categories
เพื่อให้ง่ายขึ้นเพื่อดูว่าตัวบุ้งได้รับมอบหมาย โปรดทราบว่าสิ่งนี้จะส่งคืนหมวดหมู่ทั้งหมดที่กำหนดให้กับผลิตภัณฑ์ไม่ใช่เฉพาะในหน้าปัจจุบันเช่นหากเราอยู่ใน/shop/audio/funzo/
:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
จากนั้นเราเพียงแค่ต้องตรวจสอบว่าหมวดหมู่อยู่ในรายการ:
if ( in_array( 'audio', $categories ) ) { // do something
วางมันทั้งหมดเข้าด้วยกัน:
<?php
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( in_array( 'audio', $categories ) ) {
echo 'In audio';
woocommerce_get_template_part( 'content', 'single-product' );
} elseif ( in_array( 'elektro', $categories ) ) {
echo 'In elektro';
woocommerce_get_template_part( 'content', 'single-product' );
} else {
echo 'some blabla';
}
หวังว่านี่คือสิ่งที่คุณกำลังมองหาและตอบคำถามของคุณ
)
? มันควรจะเป็นif (is_product_category('audio'))