{"id":234234,"date":"2023-02-18T12:53:00","date_gmt":"2023-02-18T09:53:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234234"},"modified":"2022-11-12T01:26:24","modified_gmt":"2022-11-11T22:26:24","slug":"tutoriel-sur-le-theme-wordpress-pour-les-debutants-partie-3-contenu-dynamique","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/tutoriel-sur-le-theme-wordpress-pour-les-debutants-partie-3-contenu-dynamique\/","title":{"rendered":"Tutoriel sur le th\u00e8me WordPress pour les d\u00e9butants \u2013 Partie 3 : Contenu dynamique"},"content":{"rendered":"\n<p>Dans cette le\u00e7on du didacticiel sur le th\u00e8me WordPress pour les d\u00e9butants, nous d\u00e9couvrirons les crochets dans WordPress et ajouterons quelques crochets dans notre th\u00e8me qui sont n\u00e9cessaires pour qu&rsquo;un th\u00e8me fonctionne correctement avec WordPress et les plugins. Nous commencerons \u00e9galement \u00e0 acc\u00e9der au contenu dynamique de WordPress dans notre en-t\u00eate, par exemple en obtenant automatiquement le titre de la page actuelle.<\/p>\n<p>Nous devons d&rsquo;abord en apprendre un peu plus sur les hooks dans WordPress. Les crochets sont une fonctionnalit\u00e9 de base avec laquelle vous devez vous familiariser. Je ne suis pas fan de montrer tout un tas de code dans lequel vous devez copier + coller sans savoir ce qu&rsquo;il fait vraiment. Si vous suivez ce tutoriel, vous voulez apprendre cela correctement, n&rsquo;est-ce pas\u00a0?<\/p>\n<p>Ne vous inqui\u00e9tez pas, je vais faire court pour le moment. Nous en apprendrons plus \u00e0 ce sujet plus loin dans ce tutoriel.<\/p>\n<h2>Crochets dans WordPress<\/h2>\n<p>Bref; comme WordPress ex\u00e9cute tout le code pour charger et afficher une page, il existe certains \u00ab\u00a0points de contr\u00f4le\u00a0\u00bb &#8211; que nous appelons des points d&rsquo;ancrage. Ces points permettent aux d\u00e9veloppeurs de modifier ou d&rsquo;ajouter leur propre code. WordPress a d\u00e9fini tout un tas de \u00ab\u00a0points de contr\u00f4le\u00a0\u00bb o\u00f9, chacun avec un nom unique. Si vous connaissez son nom, vous pouvez ajouter votre propre code \u00e0 ces points de contr\u00f4le. Et ainsi dire facilement \u00e0 WordPress d&rsquo;ex\u00e9cuter votre code lorsqu&rsquo;il atteint ce point de contr\u00f4le dans le cadre de son processus.<\/p>\n<p>Il existe deux types de crochets; actions et filtres. <strong>Les actions<\/strong> sont des points dans le code o\u00f9 vous pouvez ajouter du code personnalis\u00e9, par exemple produire quelque chose ou faire quelque chose \u00e0 vos propres fins. <strong>Les filtres<\/strong> sont des points dans le code o\u00f9 vous pouvez modifier une certaine variable avant qu&rsquo;elle ne soit utilis\u00e9e ou sortie. Ils sont tr\u00e8s similaires, mais les filtres sont attach\u00e9s \u00e0 une variable sp\u00e9cifique et les actions ne le sont pas.<\/p>\n<p>Les plugins, les th\u00e8mes et WordPress lui-m\u00eame peuvent &quot;accrocher&quot; leur code en utilisant <code>add_action()<\/code>des actions et <code>add_filter()<\/code>des filtres. Ces deux fonctions indiquent \u00e0 WordPress d&rsquo;ex\u00e9cuter le code hook\u00e9 chaque fois que l&rsquo;ex\u00e9cution atteint ces hooks.<\/p>\n<p>Afin de d\u00e9finir des crochets que vous utilisez <code>do_action()<\/code>pour les actions et <code>apply_filters()<\/code>pour les filtres.<\/p>\n<p>Pour tous ceux qui souhaitent en savoir plus, j&rsquo;ai un autre <a href=\"http:\/\/awhitepixel.com\/blog\/all-about-hooks-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">article qui d\u00e9taille les crochets<\/a> dans WordPress.<\/p>\n<p>Un th\u00e8me WordPress doit inclure certains crochets importants sp\u00e9cifiques (actions). Ces crochets permettent \u00e0 WordPress, aux plugins et \u00e0 notre th\u00e8me lui-m\u00eame de s&rsquo;accrocher et de faire des choses critiques. Regardons ces crochets critiques que nous devons ajouter.<\/p>\n<h2>Crochets d&rsquo;en-t\u00eate et de pied de page du th\u00e8me<\/h2>\n<p>Tous les th\u00e8mes WordPress doivent avoir deux crochets dans les mod\u00e8les. Une action doit \u00eatre plac\u00e9e dans l&rsquo;en-t\u00eate (\u00e0 l&rsquo;int\u00e9rieur de la <code>&lt;head&gt;<\/code>balise), et une autre dans le pied de page (juste avant la fermeture de la <code>&lt;\/body&gt;<\/code>balise). Ces deux crochets sont absolument n\u00e9cessaires pour que WordPress, votre th\u00e8me et n&rsquo;importe quel plugin puissent ajouter leurs scripts et leur code de styles \u00e0 votre th\u00e8me.<\/p>\n<p>Les crochets dont nous avons besoin sont <code>wp_head<\/code>et <code>wp_footer<\/code>pour l&rsquo;en-t\u00eate et le pied de page, respectivement.<\/p>\n<p>Normalement, lorsque nous voulons ex\u00e9cuter un hook, nous appelons <code>do_action(&lt;hook name&gt;)<\/code>. Mais parce que ces deux crochets sont si critiques, WordPress les a simplifi\u00e9s pour nous en les mettant dans un simple appel de fonction. Donc, pour ces deux crochets, vous pouvez simplement utiliser <code>wp_head()<\/code>et <code>wp_footer()<\/code>. En arri\u00e8re-plan, ces deux ex\u00e9cutent le <code>do_action()<\/code>.<\/p>\n<p>Ajoutons ces deux crochets (appels de fonction) \u00e0 nos mod\u00e8les d&rsquo;en-t\u00eate et de pied de page, et voyons ce qui se passe.<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"utf-8\"&gt;\n        &lt;title&gt;A White Pixel Theme&lt;\/title&gt;\n\u00a0\n        &lt;?php wp_head(); ?&gt;\n    &lt;\/head&gt;\n&lt;body&gt;<\/code><\/pre>\n<pre><code>        &lt;?php wp_footer(); ?&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Cliquez sur Actualiser sur votre frontend. Si vous \u00eates connect\u00e9, vous devriez maintenant voir appara\u00eetre la barre d&rsquo;administration de WordPress! Cela signifie que WordPress est d\u00e9sormais en mesure d&rsquo;ajouter avec succ\u00e8s ses scripts et ses styles \u00e0 votre th\u00e8me.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152824-61e4fb80a88c0.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152824-61e4fb80a88c0.png\" alt=\"Tutoriel sur le th\u00e8me WordPress pour les d\u00e9butants \u2013 Partie 3 : Contenu dynamique\" ><\/a><\/p>\n<p>Vous pouvez v\u00e9rifier votre source HTML et voir que votre en-t\u00eate contient maintenant pas mal de code. C&rsquo;est du code que vous n&rsquo;avez pas ajout\u00e9 \u00e0 votre th\u00e8me. Comme vous pouvez le voir, WordPress lui-m\u00eame utilise les crochets que nous avons ajout\u00e9s pour faire ses propres choses.<\/p>\n<p>Passons aux crochets et commen\u00e7ons \u00e0 examiner comment nous pouvons r\u00e9cup\u00e9rer dynamiquement le contenu de WordPress et le publier dans notre en-t\u00eate.<\/p>\n<h2>Contenu dynamique dans l&rsquo;en-t\u00eate<\/h2>\n<p>Disons \u00e0 WordPress de d\u00e9finir dynamiquement le titre du document (pour la <code>&lt;title&gt;<\/code>balise). Pour cela, nous allons utiliser une fonction (qui a un filtre d&rsquo;ailleurs), appel\u00e9e <code>wp_title()<\/code>. Comme nous l&rsquo;avons appris ci-dessus, parce que <code>wp_title()<\/code>c&rsquo;est un filtre, vous, WordPress ou les plugins pouvez modifier la sortie. Nous y ajouterons un filtre plus loin dans ce tutoriel.<\/p>\n<p>La fonction <code>wp_title()<\/code>prend <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_title\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">plusieurs arguments<\/a> que vous pouvez ajuster \u00e0 votre guise, mais pour l&rsquo;instant j&rsquo;ajouterai une cha\u00eene vide afin qu&rsquo;elle n&rsquo;affiche que le titre de la page \u00e0 laquelle nous nous trouvons.<\/p>\n<p>Transformez votre <code>&lt;title&gt;<\/code>tag <code>header.php<\/code>en ceci\u00a0:<\/p>\n<pre><code>&lt;title&gt;&lt;?php wp_title(''); ?&gt;&lt;\/title&gt;<\/code><\/pre>\n<p>Les passionn\u00e9s d&rsquo;entre vous auront peut-\u00eatre remarqu\u00e9 que la page d&rsquo;accueil ne g\u00e9n\u00e9rera pas de titre. Il s&rsquo;agit du comportement standard de WordPress que nous corrigerons plus tard dans ce didacticiel (nous le ferons \u00e0 l&rsquo;aide du filtre). Si vous visitez un seul article ou une seule page, vous devriez obtenir le titre de l&rsquo;article.<\/p>\n<p>WordPress a une fonction astucieuse qui g\u00e9n\u00e8re dynamiquement un tas de classes pour la <code>&lt;body&gt;<\/code>balise en fonction de la page sur laquelle nous nous trouvons ; appel\u00e9 <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/body_class\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">body_class<\/a>. Mettez \u00e0 jour la <code>&lt;body&gt;<\/code>balise <code>header.php<\/code>dans ceci\u00a0:<\/p>\n<pre><code>&lt;body &lt;?php body_class(); ?&gt;&gt;<\/code><\/pre>\n<p>Actualisez et jetez un \u0153il \u00e0 toutes les classes ajout\u00e9es \u00e0 la <code>&lt;body&gt;<\/code>balise. Jetez un oeil sur diff\u00e9rentes pages (frontpage, single, cat\u00e9gorie). Toutes ces classes sont tr\u00e8s utiles pour styliser et diff\u00e9rencier diff\u00e9rentes pi\u00e8ces similaires. Vous en utiliserez tr\u00e8s probablement quelques-uns dans votre CSS.<\/p>\n<p>Pour suivre les bonnes pratiques HTML, nous devons \u00e9galement informer sur la langue du site dans le HTML. Pour cela, nous utilisons une fonction WordPress pour obtenir la langue \u00e0 partir des param\u00e8tres ; <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/language_attributes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">attributs_langue<\/a>.<\/p>\n<pre><code>&lt;html &lt;?php language_attributes(); ?&gt;&gt;<\/code><\/pre>\n<p>Et enfin, j&rsquo;aimerais ajouter quelques balises m\u00e9ta et autres qui ne sont pas sp\u00e9cifiques \u00e0 WordPress, mais qui suivent les pratiques de conception Web courantes. Voici \u00e0 quoi <code>header.php<\/code>ressemble le fichier complet\u00a0:<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html class=\"no-js\" &lt;?php language_attributes(); ?&gt;&gt;\n&lt;head&gt;\n    &lt;meta charset=\"utf-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n\u00a0\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;&lt;?php wp_title(''); ?&gt;&lt;\/title&gt;\n\u00a0\n    &lt;?php wp_head(); ?&gt;\n&lt;\/head&gt;\n&lt;body &lt;?php body_class(); ?&gt;&gt;<\/code><\/pre>\n<p>Pour la prochaine \u00e9tape de ce didacticiel, nous allons partir <code>header.php<\/code>et plonger dans <code>index.php<\/code>pour apprendre \u00e0 r\u00e9cup\u00e9rer du contenu plus dynamique, tel que des publications.<\/p>\n<h2>Documentation sur les m\u00e9thodes utilis\u00e9es<\/h2>\n<ul>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_head\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_head<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_footer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_footer<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_title\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_title<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/body_class\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">body_class<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/language_attributes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">language_attributes<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cette le\u00e7on, vous d\u00e9couvrirez les hooks dans WordPress et comment acc\u00e9der au contenu dynamique de WordPress dans l&rsquo;en-t\u00eate et en sortir.<\/p>\n","protected":false},"author":1,"featured_media":224746,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[915,893,893,717,717,832,915,1110,832,925,925,841,841,862,862],"tags":[1167],"class_list":["post-234234","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autre","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-n-a","category-sujets","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=234234"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234234\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/224746"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}