Skip to Content

Quiz 3 — Thèmes & plugins

⏱️ TL;DR — 20 questions sur les thèmes (theme.json, gabarits, thème enfant) et les plugins (CPT, sécurité, i18n) (Parties 6–7). Réponds de tête, puis déplie.


1. Quel est le rôle de theme.json ?

Réponse

Centraliser les design tokens (palette, typo, espacements, layout) et les styles par défaut, en settings (ce qui est permis) et styles (ce qui est appliqué). Le cœur d’un thème FSE.

2. Comment relie-t-on un thème enfant à son parent ?

Réponse

Via l’en-tête Template: <dossier-parent> dans le style.css de l’enfant. L’enfant surcharge proprement le parent sans le modifier (survit aux MAJ).

3. Comment surcharger un gabarit dans un thème par blocs ?

Réponse

En plaçant un fichier templates/single.html (même nom) dans l’enfant : il prime sur celui du parent. En classique, on chercherait single.php.

4. Qu’est-ce que la hiérarchie de gabarits ?

Réponse

L’ordre de recherche du gabarit le plus spécifique au plus général (category-tuto.html > category.html > archive.html > index.html). Cibler le plus spécifique = personnaliser une seule vue.

5. À quoi sert le bloc Query Loop ?

Réponse

À afficher une liste d’articles en no-code : il interroge la base et boucle sur un modèle de bloc. C’est « The Loop » visuel, cœur des archives FSE.

6. Sur quel hook enregistre-t-on un CPT, et pourquoi ?

Réponse

Sur init (register_post_type) — jamais au chargement du fichier. show_in_rest: true l’expose à l’API et active Gutenberg pour ce type.

7. Pourquoi flush_rewrite_rules à l’activation ?

Réponse

Pour que les URLs du nouveau CPT (/livres/…) fonctionnent : on rafraîchit les règles de réécriture une fois à l’activation. Sinon, 404 fantômes.

8. À quoi sert register_taxonomy ?

Réponse

À créer une taxonomie custom (ex. « Genre ») liée à un CPT — comme les catégories/étiquettes, mais dédiée. show_in_rest pour l’API et l’éditeur.

9. Pourquoi register_post_meta avec show_in_rest ?

Réponse

Pour déclarer une métadonnée typée et assainie (sanitize_callback) et l’exposer dans l’API REST — indispensable pour le headless et l’éditeur de blocs.

10. Que doit contenir la sauvegarde d’une metabox ?

Réponse

Les 3 gardes : vérif nonce (wp_verify_nonce), capability (current_user_can), sanitize (sanitize_text_field + wp_unslash). Sur save_post_{cpt}.

11. À quoi sert la Settings API ?

Réponse

À créer des pages d’options proprement : register_setting (option assainie), add_settings_section/field, formulaire via settings_fields/do_settings_sections. WordPress sauve et gère le nonce pour toi.

12. Un shortcode doit-il echo ou return ?

Réponse

Retourner (jamais echo) le HTML. shortcode_atts fusionne les attributs avec des défauts. Insérable via le bloc Shortcode.

13. Résume la règle de sécurité entrée/sortie.

Réponse

Sanitize à l’entrée (sanitize_* avant la base), escape à la sortie (esc_html/esc_attr/esc_url au moment du echo). Les deux, systématiquement.

14. À quoi sert un nonce ?

Réponse

À prouver que la requête vient de ton formulaire (anti-CSRF). wp_nonce_field le pose, check_admin_referer/wp_verify_nonce le vérifie. Obligatoire sur toute action d’état.

15. Comment rend-on un plugin traduisible ?

Réponse

Chaînes via __()/_e() avec un textdomain cohérent, load_plugin_textdomain, et un .pot généré (wp i18n make-pot). Exigé par wp.org.

16. À quoi sert uninstall.php ?

Réponse

À nettoyer (options, tables, meta) à la suppression du plugin (pas à la désactivation). Protégé par WP_UNINSTALL_PLUGIN. Un plugin propre sait partir.

17. Pourquoi définir une capability custom plutôt que manage_options ?

Réponse

Pour le moindre privilège : accorder un droit ciblé (manage_wpr_books) à certains rôles, au lieu du large manage_options (admin only). Sécurité plus fine.

18. Que vérifient readme.txt et Plugin Check ?

Réponse

readme.txt = format wp.org (Stable tag, Tested up to, sections). Plugin Check audite sécurité, i18n, fonctions interdites, readme. Zéro erreur bloquante avant publication.

19. Motif (pattern) vs motif synchronisé ?

Réponse

Un motif copie une structure de blocs de départ (indépendante ensuite). Un motif synchronisé est partagé : le modifier m’update partout (ex. une bannière CTA).

20. À quoi sert un fichier dans styles/ d’un thème ?

Réponse

À définir une variation de style (même schéma que theme.json) commutable dans Styles → Parcourir (ex. un thème « sombre »). Démultiplie la valeur d’un thème sans le dupliquer.


Quiz suivant : Quiz 4 — Blocs React & headless.