web-dev-qa-db-fra.com

Vue taxonomique personnalisée

J'ai essayé Google pour cela, mais ce n'est pas si facile à rechercher. J'ai une taxonomie hiérarchique personnalisée, quelque chose comme:

Chainsaws
- Electric
- Petrol
- Other
Grasscutters
- Electric
- Petrol
- Other

Ce que je dois faire, c'est créer une page d'index en conservant la structure hiérarchique.

Le plus proche je suis venu à le faire est avec:

$products = get_terms('product-type');
foreach ($products as $product) {
      $out .= $product->name;
}

Mais cela ne montre que ceux qui sont utilisés, et perd la hiérarchie :(

Toutes les idées sont les bienvenues.

Merci d'avance

Andy

4
Andy
<?php
$args = array(
  'taxonomy'     => 'product-type',
  'hierarchical' => true,
  'title_li'     => '',
  'hide_empty'   => false
);
?>

<ul>
<?php wp_list_categories( $args ); ?>
</ul>

Vous pouvez utiliser la fonction wp_list_categories également pour les taxonomies. http://codex.wordpress.org/Template_Tags/wp_list_categories

5
Rob Vermeer

Voici quelque chose que j'ai fouetté:

<?php
//Walker function
function custom_taxonomy_walker($taxonomy, $parent = 0)
{
    $terms = get_terms($taxonomy, array('parent' => $parent, 'hide_empty' => false));
    //If there are terms, start displaying
    if(count($terms) > 0)
    {
        //Displaying as a list
        $out = "<ul>";
        //Cycle though the terms
        foreach ($terms as $term)
        {
            //Secret sauce.  Function calls itself to display child elements, if any
            $out .="<li>" . $term->name . custom_taxonomy_walker($taxonomy, $term->term_id) . "</li>"; 
        }
        $out .= "</ul>";    
        return $out;
    }
    return;
}

//Example
echo custom_taxonomy_walker('category');
?>
4
Manny Fleurmond