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

Dans ce chapitre nous allons évoquer un premier point clef de WordPress : Les hooks. Ces hooks permettent d'étendre WordPress depuis un thème ou un plugin en injectant des fonctionnalités lors de moment clef.

Fonctionnement

Pour ajouter une opération à effectuer lors de l’exécution d'un hook il vous suffit d'utiliser la fonction do_action(). Dans le cas d'un thème, les hooks seront définit dans le fichier functions.php mais libre à vous de les organiser comme bon vous semble.

function montheme_register_assets()
{
    wp_register_style('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css', []);
    wp_register_script('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js', ['popper', 'jquery'], false, true);
    wp_register_script('popper', 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js', [], false, true);
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'https://code.jquery.com/jquery-3.2.1.slim.min.js', [], false, true);
    wp_enqueue_style('bootstrap');
    wp_enqueue_script('bootstrap');
}
add_action('wp_enqueue_scripts', 'montheme_register_assets');

L'action wp_enqueue_scripts permet par exemple d'enregistrer de nouveaux éléments javascript ou css à charger. Vous pouvez en apprendre plus sur l'ordre d'éxécutions des actions en vous rendant sur cette page de la documentation. L'ensemble des hooks sont quant à eux listé dans la partie Code Reference de la documentation.

Vous pouvez aussi passer un troisième paramètre pour définir la "priorité" de votre action. Ceci permet à WordPress de savoir dans quelle ordre lancer les différentes actions. Enfin le 4ème argument permet de spécifier le nombre d'arguments attendus par la méthode de rappel.

Un autre hook intéréssant est le hook after_setup_theme qui vous permettra d'enregistrer des informations sur le fonctionnement de votre thème.

function montheme_supports()
{
    add_theme_support('title-tag');
    add_theme_support('post-thumbnails');
    add_theme_support('menus');
    register_nav_menu('header', 'En tête du menu');
    register_nav_menu('footer', 'Pied de page');

    add_image_size('post-thumbnail', 350, 215, true);
}
add_action('after_setup_theme', 'montheme_supports');