Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak bisa mendapatkan objek kategori di beberapa templat WooCommerce

Anda tidak dapat menggunakan get_category() atau get_term() langsung dengan ID di mana-mana. Anda perlu menggunakan lebih banyak argumen yang tercantum di sini (lihat contoh di bawah) . Pada template, saya pikir itu juga tergantung pada produk yang ditampilkan (Jika mereka memiliki kategori atau subkategori ini).

Fungsi WordPress berguna lainnya:
Untuk mengambil nama kategori berdasarkan ID kategori, Anda harus menggunakan get_the_category_by_ID() .
Anda juga dapat mengambil ID dengan nama kategori dan Anda akan menggunakan get_cat_ID( 'cat_name' ) .

Mencantumkan kategori dan subkategori Produk dengan get_category() (contoh) :

Ini dia contoh fungsi berdasarkan utas ini , yang akan mencantumkan semua kategori dan subkategori produk (di mana saja) :

function products_cats_subcats(){
    $taxonomy     = 'product_cat';
    $orderby      = 'name';
    $show_count   = 0;      // 1 for yes, 0 for no
    $pad_counts   = 0;      // 1 for yes, 0 for no
    $hierarchical = 1;      // 1 for yes, 0 for no
    $title        = '';
    $empty        = 0;

    $args = array(
        'taxonomy'     => $taxonomy,
        'orderby'      => $orderby,
        'show_count'   => $show_count,
        'pad_counts'   => $pad_counts,
        'hierarchical' => $hierarchical,
        'title_li'     => $title,
        'hide_empty'   => $empty
    );
    $all_categories = get_categories( $args );
    echo '<ul>';
    foreach ($all_categories as $cat) {
        if($cat->category_parent == 0) {
            $category_id = $cat->term_id;
            echo '<li><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a></li>';

            $args2 = array(
                'taxonomy'     => $taxonomy,
                'child_of'     => 0,
                'parent'       => $category_id,
                'orderby'      => $orderby,
                'show_count'   => $show_count,
                'pad_counts'   => $pad_counts,
                'hierarchical' => $hierarchical,
                'title_li'     => $title,
                'hide_empty'   => $empty
            );
            $sub_cats = get_categories( $args2 );
            echo '<ol>';
            if($sub_cats) {
                foreach($sub_cats as $sub_category) {
                    echo  '<li><a href="'. get_term_link($sub_category->slug, 'product_cat') .'">' . $sub_category->name .'</a></li>';
                }
            }
            echo '</ol>';
        }
    }
    echo '</ul>';
}

Untuk menggunakannya, letakkan saja di tempat yang Anda inginkan:<?php products_cats_subcats() ;?>

Itu akan menampilkan semua kategori dan subkategori Anda yang diurutkan secara hierarkis berdasarkan Nama , dengan tautan yang sesuai untuk setiap kategori atau subkategori.

Maka sekarang Anda akan dapat membangun fungsi Anda sendiri, untuk memenuhi kebutuhan Anda…

Referensi:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengubah judul kolom SQL melalui kueri

  2. MySQL dan CASE WHEN dengan rentang nilai

  3. Cara terbaik untuk menghentikan satu orang membuat banyak akun

  4. Bagaimana saya harus menyimpan GUID di tabel MySQL?

  5. Query MySql Pilih Lalu Hapus