Aller au contenu principal
Version: 26.0.8.7

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.

MyController.php
#[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.

@theme/my_sitemap.html.twig
{% 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.