Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể nhận đối tượng danh mục trong một số mẫu của WooCommerce

Bạn không thể sử dụng get_category() hoặc get_term() trực tiếp với một ID ở mọi nơi. Bạn cần sử dụng thêm các đối số được liệt kê tại đây (xem ví dụ bên dưới) . Về các mẫu, tôi nghĩ rằng điều đó cũng phụ thuộc vào các sản phẩm được hiển thị (Nếu chúng có danh mục hoặc danh mục phụ này).

Các chức năng WordPress hữu ích khác:
Để truy xuất tên danh mục dựa trên ID danh mục, bạn sẽ cần sử dụng get_the_category_by_ID() .
Bạn cũng có thể truy xuất ID theo tên danh mục và bạn sẽ sử dụng get_cat_ID( 'cat_name' ) .

Liệt kê Danh mục sản phẩm và danh mục phụ với get_category() (ví dụ) :

Đây là ví dụ về một hàm dựa trên chủ đề này , sẽ liệt kê tất cả các danh mục sản phẩm và danh mục phụ (ở mọi nơi) :

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>';
}

Để sử dụng nó, chỉ cần đặt nó ở nơi bạn muốn: <?php products_cats_subcats() ;?>

Điều đó sẽ hiển thị tất cả các danh mục và danh mục phụ của bạn được sắp xếp theo thứ bậc theo Tên , với liên kết tương ứng cho từng danh mục hoặc danh mục con.

Sau đó, bây giờ bạn sẽ có thể xây dựng các chức năng của riêng mình, đáp ứng nhu cầu của bạn…

Tham khảo:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bất kỳ lý do nào để vẫn sử dụng trường hợp rắn cho các bảng và cột cơ sở dữ liệu?

  2. Logstash không đọc trong các mục nhập mới từ MySQL

  3. MySQL:lỗi trong cú pháp SQL của bạn ... gần khóa ...?

  4. Bất kỳ cách nào để đạt được tìm kiếm giống như văn bản đầy đủ trên InnoDB

  5. Tự động xây dựng menu ngang