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 .= ' · '; 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" ]
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 .= ' · '; 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
Comentários
Postar um comentário