วิธีแสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่

เผยแพร่แล้ว: 2020-08-16

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

แสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่

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

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

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

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

ในบทช่วยสอนสั้นๆ นี้ คุณจะได้เรียนรู้วิธีแสดงหมวดหมู่ในรายการแยกต่างหากก่อนแสดงผลิตภัณฑ์

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

ก) แสดงทั้งผลิตภัณฑ์และหมวดหมู่หรือหมวดย่อย

ขั้นตอนในการแสดงทั้งผลิตภัณฑ์และหมวดหมู่หรือหมวดหมู่ย่อย

  1. ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนูแดชบอร์ด ให้คลิกที่ เมนูลักษณะที่ปรากฏ > ปรับแต่ง คลิกที่ หน้าร้านค้า และเลือก WooCommerce > แคตตาล็อกสินค้า ที่ตัวเลือก Shop Display ให้เลือก Show types & products ที่ตัวเลือกการ แสดง Category เลือก Show subcategories & products ตามที่แสดงด้านล่าง: แสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่
  3. อย่าลืม บันทึก การเปลี่ยนแปลงที่คุณทำ
  4. นี่จะเป็น ผลลัพธ์ : แสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่

b) แสดงหมวดหมู่ผลิตภัณฑ์ WooCommerce

อย่างไรก็ตาม คุณสามารถแสดงหมวดหมู่ผลิตภัณฑ์ WooCommerce ได้โดยใช้ข้อมูลโค้ดด้านล่าง ซึ่งควรอยู่ในไฟล์ functions.php

ขั้นตอนในการแสดงหมวดหมู่สินค้า WooCommerce

นี่คือขั้นตอนที่คุณควรปฏิบัติตาม:

  1. ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนู Dashboard ให้คลิกที่ Appearance Menu > Theme Editor เมื่อเปิดหน้า Theme Editor ให้มองหา ไฟล์ฟังก์ชัน ของธีมที่เราจะเพิ่มฟังก์ชันที่จะแสดงหมวดหมู่ผลิตภัณฑ์ WooCommerce
  3. เพิ่มรหัสต่อไปนี้ ในไฟล์ php :
 ฟังก์ชัน woocommerce_product_category( $args = array() ) {

    $woocommerce_category_id = get_queried_object_id();

  $args = อาร์เรย์ (

             'parent' => $woocommerce_category_id
  );

  $terms = get_terms( 'product_cat', $args );

  ถ้า ( $terms ) {

             echo '<ul class="woocommerce-categories">';

             foreach ( $terms เป็น $term ) {

             echo '<li class="woocommerce-product-category-page">';

            woocommerce_subcategory_thumbnail( $term );

             ก้อง '<h2>';

             echo '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '">';

             echo $term->name;

             เสียงสะท้อน '</a>';

             ก้อง '</h2>';

             ก้อง '</li>';

             }

             ก้อง '</ul>';

  }

}

add_action( 'woocommerce_before_shop_loop', 'woocommerce_product_category', 100 );
  1. นี่จะเป็นผลลัพธ์: แสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่

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

รหัสทำงานอย่างไร

โค้ดนี้ทำงานโดยใช้ woocommerce_product_category() function ซึ่งแสดงหมวดหมู่หรือหมวดหมู่ย่อยก่อนที่จะรันลูปที่ส่งออกผลิตภัณฑ์ สามารถแทนที่ธีมได้ เนื่องจากฟังก์ชันนี้เสียบปลั๊กได้

c) แสดงรายการหมวดหมู่ย่อยของหมวดหมู่ผลิตภัณฑ์ WooCommerce

ง่ายมากที่จะรับหมวดหมู่ย่อยของหมวดหมู่ผลิตภัณฑ์ WooCommerce โดยใช้ฟังก์ชันแบบกำหนดเองที่ใช้ประโยชน์จากกระสุนหมวดหมู่ผลิตภัณฑ์หลัก

ขั้นตอนในการแสดงรายการหมวดหมู่ย่อยของหมวดหมู่ผลิตภัณฑ์ WooCommerce

  1. ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนู Dashboard ให้คลิกที่ Appearance Menu > Theme Editor เมื่อเปิดหน้า Theme Editor ให้มองหา ไฟล์ฟังก์ชัน ของธีมที่เราจะเพิ่มฟังก์ชันที่จะแสดงรายการหมวดหมู่ย่อยของหมวดหมู่ผลิตภัณฑ์ WooCommerce
  3. เพิ่มรหัสต่อไปนี้ ในไฟล์ php :
 ฟังก์ชั่น woocommerce_get_product_category_of_subcategories ( $category_slug ){

$terms_html = อาร์เรย์ ();
$taxonomy = 'product_cat';
$parent = get_term_by( 'slug', $category_slug, $taxonomy );
$children_ids = get_term_children( $parent->term_id, $taxonomy );

foreach($children_ids เป็น $children_id){

    $term = get_term( $children_id, $อนุกรมวิธาน );

    $term_link = get_term_link( $term_link $อนุกรมวิธาน );

    ถ้า ( is_wp_error( $term_link ) ) $term_link = '';

    $terms_html[] = '<a href="' . esc_url( $term_link ) . '" rel="tag" class="' . $term->slug . '">' $term->name '</a>';
}

ส่งคืน '<span class="subcategories-' . $category_slug . '">' ระเบิด( ', ', $terms_html ) '</span>';

}
  1. นี่จะเป็นผลลัพธ์: แสดงรายการหมวดหมู่ย่อยของหมวดหมู่ผลิตภัณฑ์ WooCOMmerce

รหัสทำงานอย่างไร

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

d) การระบุรหัสที่ WooCommerce ใช้เพื่อส่งออกหมวดหมู่และผลิตภัณฑ์ในหอจดหมายเหตุ

ก่อนที่เราจะสร้างปลั๊กอิน ขั้นตอนแรกคือการระบุว่า WooCommerce ส่งออกหมวดหมู่และหมวดหมู่ย่อยอย่างไร ซึ่งหมายความว่าเราต้องค้นหาซอร์สโค้ด WooCommerce ด้วยตนเองเพื่อค้นหาฟังก์ชันที่เกี่ยวข้อง

เพื่อลดความซับซ้อนของกระบวนการสำหรับคุณ เพียงแค่มองหา archive-product.php ซึ่งอยู่ในโฟลเดอร์เทมเพลต นี่คือไฟล์ที่ WooCommerce ใช้เพื่อแสดงหน้าเก็บถาวร ตอนนี้คุณต้องค้นหารหัสที่แสดงหมวดหมู่และผลิตภัณฑ์:

 <?php
/**
* woocommerce_before_shop_loop ตะขอ
*
* @hooked woocommerce_result_count - 20
* @hooked woocommerce_catalog_ordering - 30
*/

do_action( 'woocommerce_before_shop_loop' );
?>

<?php woocommerce_product_loop_start(); ?>

<?php woocommerce_product_subcategories(); ?>

<?php ในขณะที่ ( have_posts() ) : the_post(); ?>

<?php wc_get_template_part( 'เนื้อหา', 'ผลิตภัณฑ์' ); ?>

<?php เมื่อสิ้นสุด; // สิ้นสุดลูป ?>

<?php woocommerce_product_loop_end(); ?>

รหัสทำงานอย่างไร:

ฟังก์ชัน woocommerce_product_subcategories() function แสดงผลหมวดหมู่หรือหมวดหมู่ย่อยก่อนที่จะรันลูปที่ส่งออกผลิตภัณฑ์ เหตุผลที่ฉันสนใจฟังก์ชันนี้เพราะว่าเสียบได้ ซึ่งหมายความว่าเราสามารถแทนที่ฟังก์ชันนี้ได้ในธีมของเรา

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

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

อย่างไรก็ตาม สิ่งสำคัญที่ควรทราบคือ WooCommerce เพิ่มความชัดเจนให้กับรายการผลิตภัณฑ์ที่สามแต่ละรายการ ซึ่งหมายความว่าเราไม่สามารถใช้ woocommerce_product_subcategories() function หรือเวอร์ชันที่แก้ไขเพื่อแสดงหมวดหมู่ได้ คำอธิบายคือฟังก์ชันนี้จะล้างหมวดหมู่หรือผลิตภัณฑ์ที่สาม หก (และอื่นๆ) ที่อยู่ในรายการ แม้ว่าเราจะใช้ฟังก์ชันนี้เพื่อแสดงหมวดหมู่แยกกัน ซึ่งหมายความว่าเราต้องสร้างฟังก์ชันที่จะแทนที่มัน ซึ่งสามารถทำได้โดยการสร้างปลั๊กอิน

e) การสร้าง Plugin

คุณต้องสร้างชื่อใหม่ขึ้นมาใหม่และตั้งชื่อเฉพาะในไดเร็กทอรี wp-content/plugins สำหรับตัวอย่างนี้ โปรดใช้ความระมัดระวังเมื่อทำตามขั้นตอนต่างๆ เพื่อให้คุณสามารถทำงานตามที่เราต้องการได้ ฉันจะใช้ชื่อนี้ njengah-separate-products-categories-in-archives

ภายในโฟลเดอร์นี้ คุณต้องสร้างไฟล์ใหม่อีกครั้งโดยใช้ชื่อที่ไม่ซ้ำ ฉันจะใช้ชื่อเดียวกันสำหรับโฟลเดอร์นี้ njengah-separate-products-categories-in-archives.php

ขั้นตอนในการสร้างปลั๊กอิน

  1. เปิดไฟล์ของคุณ และเพิ่มรหัสต่อไปนี้:
 <?php
/**
* ชื่อปลั๊กอิน: หมวดหมู่สินค้า WooCommerce
* คำอธิบาย: แสดงหมวดหมู่ WooCommerce บนหน้าผลิตภัณฑ์ WooCommerce

**/
  1. ก่อน เขียนฟังก์ชันของเรา คุณต้องปิดรายการหมวดหมู่ในหน้าจอผู้ดูแลระบบโดยลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนูแดชบอร์ด ให้คลิกที่ เมนูลักษณะที่ปรากฏ > ปรับแต่ง คลิกที่ หน้าร้านค้า และเลือก WooCommerce > แคตตาล็อกสินค้า ที่ตัวเลือก Shop Display ให้เลือก Show products ในตัวเลือกการแสดง ประเภท เลือก แสดงสินค้า
  3. อย่าลืม บันทึก การเปลี่ยนแปลงที่คุณทำ
  4. นี่จะเป็น ผลลัพธ์ : แสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่
  5. เพิ่ม ลงในไฟล์ปลั๊กอิน:
 ฟังก์ชัน njengah_product_subcategories ($args = array()) {

}

add_action( 'woocommerce_before_shop_loop', 'njengah_product_subcategories', 50 );
  1. จากนั้นคุณต้องเพิ่มรหัสนี้ในฟังก์ชัน:
  2.  $parentid = get_queried_object_id();
    
    $args = อาร์เรย์ (
    
    'parent' => $parentid
    
    );
    
    $terms = get_terms( 'product_cat', $args );
    
    ถ้า ( $terms ) {
    
    echo '<ul class="product-cats">';
    
    foreach ( $terms เป็น $term ) {
    
    echo '<li class="category">';
    
    woocommerce_subcategory_thumbnail( $term );
    
    ก้อง '<h2>';
    
    echo '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '">';
    
    echo $term->name;
    
    เสียงสะท้อน '</a>';
    
    ก้อง '</h2>';
    
    ก้อง '</li>';
    
    }
    
    ก้อง '</ul>';
    
    }

    นี่จะเป็นผลลัพธ์: แสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่

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

รหัสทำงานอย่างไร

ฟังก์ชันที่เราสร้างขึ้นจะระบุอ็อบเจ็กต์ที่สอบถามในปัจจุบันและกำหนด id ของมันคือ $parentid จากนั้นจะใช้ get_terms() เพื่อระบุเงื่อนไขที่มีรายการที่สืบค้นในปัจจุบันเป็นผู้ปกครอง หากนี่คือหน้าร้านค้าหลัก จะแสดงหมวดหมู่ระดับบนสุด และหากเป็นที่เก็บถาวรของหมวดหมู่ ก็จะส่งคืนหมวดหมู่ย่อย

นอกจากนี้ ฟังก์ชันจะตรวจสอบว่ามีเงื่อนไขใดๆ หรือไม่ ก่อนที่จะเปิด a สำหรับแต่ละลูปและองค์ประกอบ ul ซึ่งหมายความว่าสำหรับแต่ละคำศัพท์จะสร้างองค์ประกอบ li แล้วส่งออก category image using woocommerce_subcatgeory_thumbnail() ตามด้วยชื่อหมวดหมู่ในลิงก์ไปยังไฟล์เก็บถาวร

ขั้นตอนในการจัดรูปแบบรายการหมวดหมู่

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

  1. สร้าง โฟลเดอร์ชื่อ CSS และ ภายใน นั้นสร้างไฟล์ชื่อ CSS ควรทำ ในโฟลเดอร์ปลั๊กอินเพื่อให้ทำงาน ได้
  2. เพิ่ม รหัสนี้ที่ด้านบนของฟังก์ชันที่คุณได้สร้างไว้แล้ว:
 ฟังก์ชัน njengah_product_cats_css () {




/* ลงทะเบียนสไตล์ชีต */

wp_register_style( ' njengah _product_cats_css', plugins_url( 'css/style.css', __FILE__ ) );




/* จัดคิวสไตล์ชีต */

wp_enqueue_style( ' ขาย _product_cats_css' );




}




add_action ( 'wp_enqueue_scripts', ' njengah _product_cats_css' );
  1. ขั้นตอนต่อไปคือการเปิดสไตล์ชีตของคุณและเพิ่มโค้ดด้านล่าง อย่างไรก็ตาม สิ่งสำคัญที่ควรทราบคือ WooCommerce ใช้รูปแบบที่เน้นอุปกรณ์เคลื่อนที่เป็นอันดับแรก นั่นคือสิ่งที่เราจะใช้เช่นกัน
 ul.product-cats ลี {
รายการสไตล์: none;
ระยะขอบซ้าย: 0;
ระยะขอบล่าง: 4.236em;
จัดข้อความ: ศูนย์;
ตำแหน่ง: ญาติ;
}

ul.product-cats li img {
ระยะขอบ: 0 อัตโนมัติ;
}


หน้าจอ @media และ (min-width:768px) {

ul.product-cats {
ระยะขอบซ้าย: 0;
ชัดเจน: ทั้งสอง;
}

ul.product-cats ลี {
ความกว้าง: 29.4117647059%;
ลอย: ซ้าย;
ระยะขอบขวา: 5.8823529412%;
}

ul.product-cats li:nth-of-type (3) {
ระยะขอบขวา: 0;
}

}
  1. นี่จะเป็นผลลัพธ์: แสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่

บทสรุป

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

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

บทความที่คล้ายกัน