Introduction
Les bases
Les plugins incontournables
Travaux pratiques
Installation et configuration du projetRéservé aux membres premiums
16 min
En tête et pied de pageRéservé aux membres premiums
42 min
La page actualitésRéservé aux membres premiums
36 min
La single actualitéRéservé aux membres premiums
56 min
Gestion des biensRéservé aux membres premiums
25 min
Single d'un bienRéservé aux membres premiums
26 min
Listing des biensRéservé aux membres premiums
26 min
Correction du menuRéservé aux membres premiums
10 min
Recherche des biensRéservé aux membres premiums
24 min
Page d'accueilRéservé aux membres premiums
55 min
Formulaire de contactRéservé aux membres premiums
19 min

Par défaut WordPress permet de définir plusieurs taxonomies sur les articles : des catégories et des tags. Il est aussi possible de définir ses propres taxonomies à l'aide de la fonction register_taxonomy. Cette fonction permet de déclarer une nouvelle taxonomy qui pourra ensuite être utilisé dans l'administration.

function montheme_register_sport() {
    register_taxonomy('sport', 'post', [
        'labels' => [
            'name' => 'Sport',
            'singular_name'     => 'Sport',
            'plural_name'       => 'Sports',
            'search_items'      => 'Rechercher des sports',
            'all_items'         => 'Tous les sports',
            'edit_item'         => 'Editer le sport',
            'update_item'       => 'Mettre à jour le sport',
            'add_new_item'      => 'Ajouter un nouveau sport',
            'new_item_name'     => 'Ajouter un nouveau sport',
            'menu_name'         => 'Sport',
        ],
        'show_in_rest' => true,
        'hierarchical' => true,
        'show_admin_column' => true,
    ]);
}
add_action('init', 'montheme_register_sport');

Vous pouvez ensuite récupérer la liste de ces taxonomies sur vos pages articles. Par exemple pour créer une navigation pour notre taxonomy :

<?php $sports = get_terms(['taxonomy' => 'sport']); ?>
<ul class="nav nav-pills my-4">
    <?php foreach($sports as $sport): ?>
    <li class="nav-item">
        <a href="<?= get_term_link($sport) ?>" class="nav-link <?= is_tax('sport', $sport->term_id) ? 'active' : '' ?>"><?= $sport->name ?></a>
    </li>
    <?php endforeach; ?>
</ul>

Vous pouvez aussi créer une page personnalisée pour votre taxonomy en créant un fichier taxonomy-<taxonomy>.php.

<?php get_header() ?>


<h1><?= esc_html(get_queried_object()->name) ?></h1>

<p>
    <?= esc_html(get_queried_object()->description) ?>
</p>

<?php $sports = get_terms(['taxonomy' => 'sport']); ?>
<?php if (is_array($sports)): ?>
<ul class="nav nav-pills my-4">
    <?php foreach($sports as $sport): ?>
    <li class="nav-item">
        <a href="<?= get_term_link($sport) ?>" class="nav-link <?= is_tax('sport', $sport->term_id) ? 'active' : '' ?>"><?= $sport->name ?></a>
    </li>
    <?php endforeach; ?>
</ul>
<?php endif ?>

<?php if (have_posts()) : ?>
    <div class="row">

        <?php while (have_posts()) : the_post(); ?>
            <div class="col-sm-4">
                <?php get_template_part('parts/card', 'post'); ?>
            </div>
        <?php endwhile ?>

    </div>

    <?php montheme_pagination() ?>

<?php else : ?>
    <h1>Pas d'articles</h1>
<?php endif; ?>

<?php get_footer() ?>