WooCommerce - Listando Categorias

Olá pessoal hoje irei explicar e exemplificar como listar as categorias ou categorias e subcategorias de produtos do woocommerce para quem estiver com dúvidas.


1 - Bom neste exemplo irei mostrar como listar todas categorias e subcategorias:

$terms = get_terms('product_cat','orderby=name&hide_empty=0');
 $count = count($terms);
 if ( $count > 0 ){
     echo "<ul>";
     foreach ( $terms as $term ) {
       echo "<li>" . $term->name . "</li>";
     
     }
     echo "</ul>";
 }


2 - Neste segundo exemplo irei mostrar como listar somente as categorias, exceto subcategorias:

$terms = get_terms('product_cat','orderby=name&hide_empty=0&child_of=1&parent=0');
 $count = count($terms);
 if ( $count > 0 ){
     echo "<ul>";
     foreach ( $terms as $term ) {
       echo "<li>" . $term->name . "</li>";
     
     }
     echo "</ul>";
 }


3- Neste outro exemplo como listar as categorias já com os links respectivos:
$terms = get_terms('product_cat','orderby=name&hide_empty=0&child_of=1&parent=0');

$count = count($terms); $i=0;
if ($count > 0) {
    $cape_list = '<p class="my_term-archive">';
    foreach ($terms as $term) {
        $i++;
    $term_list .= '<a href="../categoria-produto/' . $term->slug . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a>';
    if ($count != $i) $term_list .= ' &middot; '; else $term_list .= '</p>';
    }
    echo $term_list;
}


Lembrando que os exemplos acima são válidos para serem inseridos direto no código da página em seu arquivo php, e estes exemplos acima listam as categorias com suas respectivas imagens ou capas.

Agora se você quer inserir diretamente no post da página basta seguir utilizar shortcode, detalhe importante do shortcode , é lindo "rsrs".
sem shortcode:
$terms = get_terms('product_cat','orderby=name&hide_empty=0&child_of=1&parent=0');
.....

com shortcode:
[product_categories orderby="name" hide_empty="0" child_of="1" parent="0"]



Para listar somente os nomes das categorias você pode cirar um shortcode em alguma página tipo header.php e adicionar o seguinte:
<?php

// Definimos o shortcode para listar as categorias
add_shortcode('lista_categorias', 'shortcode_lista_categorias');

// Função que retorna o HTML pelo Shortcode
function shortcode_lista_categorias($atts, $content=null)
{
$terms = get_terms('product_cat','orderby=name&hide_empty=0&child_of=1&parent=0');

$count = count($terms); $i=0;
if ($count > 0) {
    foreach ($terms as $term) {
        $i++;
     $term_list .= '<li><a href="categoria-produto/' . $term->slug . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'),
$term->name).'">'.$term->name.'</a></li>';
$term_list .= '';
    }

}
 return $term_list;
}

?>


Pronto agora na página que você queria listar os nomes das categorias basta adicionar o shorcode simples assim [lista_categorias]



Galera não expliquei muito mais deixei bem mastigado para vocês, mais peço que leiam sobre shortcode para entenderem melhor e sobre

Function Reference/get terms para entenderem o que são os [ orderby="name" hide_empty="0" child_of="1" parent="0" ]

Inclusive fiz uma postagem traduzida sobre o function reference e o get terms da fonte do codex, peço que leiam para entender ok.

Por favor comentem e compartilhe nosso blog. Bom espero ter ajudado ;)

Até a próxima


Aquiles Maior







Comentários