Sitemap
Le shortcode elementum_sitemap permet d'afficher facilement la liste des posts types ou taxonomies du site.
Elementum gère l'affichage par défaut. Il est possible de définir un nouveau template en changeant la valeur du chemin vers le template à utiliser.
#[Filter('elementum.sitemap.shortcode.template')] public function my_sitemap_template($defaultTemplatePath) { return '@theme/my_sitemap.html.twig'; }
Vous pouvez vous baser sur le code suivant avant d'avoir la logique de base et vous focaliser sur la structure de votre template.
{% macro render_items(items, depth = 0, show_counts = false) %} <ul> {% for item in items %} {% if item.ID %} <li> <a href="{{ fn('get_the_permalink', item.ID) }}"> {{ item.post_title }} </a> {% if item.post_children is defined and item.post_children|length > 0 %} {{ _self.render_items(item.post_children, depth + 1) }} {% endif %} </li> {% else %} <li><a href="{{ fn('get_term_link', item.term_id) }}"> {{ item.name }} {% if show_counts and item.children|length > 0 %} <span>({{ item.children|length }})</span> {% endif %} </a> {% if item.children is defined and item.children|length > 0 %} {{ _self.render_items(item.children, depth + 1) }} {% endif %} </li> {% endif %} {% endfor %} </ul> {% endmacro %} {% for type in grouped_content %} <h2> {{ type.label }} {% if show_counts %} <span>({{ type.items|length }})</span> {% endif %} </h2> {{ _self.render_items(type.items, 0) }} {% endfor %}
Arguments
type
Type de contenu à afficher. Peut être post, page ou tout autre type de contenu.
Possibilité de spécifier plusieurs types en les séparant par une virgule. Exemple : post,page.
tax
Taxonomie à afficher. Peut être category, post_tag ou toute autre taxonomie.
Possibilité de spécifier plusieurs taxonomies en les séparant par une virgule. Exemple : category,post_tag.
depth
Profondeur de l'affichage. Par défaut, l'affichage est à 4.
orderby
Ordre d'affichage. Par défaut, l'affichage est à date.
order
Ordre d'affichage. Par défaut, l'affichage est à DESC.
exclude_ids
Ids à exclure. Peut être un id ou une liste d'ids séparés par une virgule. Exemple : 1,2,3.
show_count
Affiche le nombre d'articles dans chaque catégorie. Par défaut, l'affichage est à false.