sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke hente kategoriobjekt i nogle skabeloner af WooCommerce

Du kan ikke bruge get_category() eller get_term() direkte med et ID overalt. Du skal bruge flere argumenter anført her (se eksemplet nedenfor) . På skabelonerne tror jeg, at det også afhænger af de viste produkter (hvis de har denne kategori eller underkategori).

Andre nyttige WordPress-funktioner:
For at hente kategorinavn baseret på kategori-id skal du bruge get_the_category_by_ID() .
Du kan også hente ID'et efter kategorinavn og du vil bruge get_cat_ID( 'cat_name' ) .

Anfører produktkategorier og underkategorier med get_category() (eksempel) :

Her er det et eksempel på en funktion baseret på denne tråd , der viser alle produktkategorier og underkategorier (overalt) :

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

For at bruge det, læg det bare hvor du vil:<?php products_cats_subcats() ;?>

Det vil vise alle dine kategorier og underkategorier hierarkisk sorteret efter Navn , med det tilsvarende link for hver kategori eller underkategori.

Så vil du nu være i stand til at bygge dine egne funktioner, for at opfylde dine behov...

Reference:




  1. MySQL-forespørgsel, der matcher to felter og har et andet felt til fælles

  2. Ønsket output med givne tabeldata

  3. Hvor er Oracle Bug Database?

  4. Sådan formateres data på en bestemt måde ved hjælp af html og php