{"id":1650,"date":"2019-02-22T16:42:06","date_gmt":"2019-02-22T15:42:06","guid":{"rendered":"https:\/\/2019.paris.wordcamp.org\/?p=1650"},"modified":"2019-04-13T11:24:47","modified_gmt":"2019-04-13T09:24:47","slug":"atelier-7-initiation-aux-crochets-de-wordpress","status":"publish","type":"post","link":"https:\/\/paris.wordcamp.org\/2019\/atelier-7-initiation-aux-crochets-de-wordpress\/","title":{"rendered":"#Atelier 7 : initiation aux crochets de WordPress \ud83d\udd0c\ud83c\udfa3"},"content":{"rendered":"\n<p>Le mardi 19 f\u00e9vrier 2019 s&rsquo;est tenu notre septi\u00e8me atelier de pr\u00e9paration \u00e0 la <a href=\"https:\/\/2019.paris.wordcamp.org\/contributor-day\/\">journ\u00e9e de contribution du WordCamp Paris 2019<\/a>. Nous \u00e9tions onze contributeur\u00b7rice\u00b7s et avons investi une des tables du dernier \u00e9tage du campus Parmentier de l&rsquo;Epitech. Comme le montre la photo \u00e0 la une, nous nous sommes install\u00e9\u00b7e\u00b7s en configuration \u00ab&nbsp;table de contribution&nbsp;\u00bb pour travailler ensemble sur le sujet qui nous r\u00e9unissait.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Le compte-rendu \ud83d\udcc4<\/h2>\n\n\n\n<p>Apr\u00e8s avoir expos\u00e9 le contexte de notre atelier et rapidement r\u00e9introduit les raisons qui nous motivent naturellement \u00e0 contribuer \u00e0 WordPress, nous avons partag\u00e9 <a rel=\"noreferrer noopener\" aria-label=\"une d\u00e9finition des crochets (opens in a new tab)\" href=\"https:\/\/github.com\/WordCampParis\/contribuer-a-wordpress\/blob\/master\/extensions\/api.md\" target=\"_blank\">une d\u00e9finition des crochets<\/a> ou \u00ab&nbsp;hooks&nbsp;\u00bb de WordPress en fran\u00e7ais.<\/p>\n\n\n\n<p>Ce dispositif particulier de WordPress autorise une modification de son comportement ou des personnalisations avanc\u00e9es tout en pr\u00e9servant le code source du logiciel. J&rsquo;ai notamment insist\u00e9 sur ce point : la modification du code source de WordPress (des th\u00e8mes ou des extensions) est tr\u00e8s risqu\u00e9e et carr\u00e9ment d\u00e9conseill\u00e9e (pour ne pas dire interdite !).  <\/p>\n\n\n\n<p>Nous avons abord\u00e9 les deux types de crochets (action ou filtre) ainsi que les localisations possibles pour positionner du code personnalis\u00e9 dans un site WordPress.<\/p>\n\n\n\n<p>Enfin, nous avons pris le temps de manipuler ces crochets en codant une mini application qui affiche la date de derni\u00e8re connexion d&rsquo;un utilisateur dans sa page de profil de l&rsquo;administration de WordPress. Pour les plus curieux\u00b7euses d&rsquo;entre vous, voici une <a rel=\"noreferrer noopener\" aria-label=\"possible correction (opens in a new tab)\" href=\"https:\/\/gist.github.com\/imath\/b8ddab107cb1733b0184c63b09ae4407\" target=\"_blank\">possible correction<\/a> de notre exercice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rediffusion de l\u2019atelier<\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube alignwide wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/VQ0VE93VRmQ?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n\n\n\n<p>Comme d\u2019habitude, vous pouvez revivre l\u2019int\u00e9gralit\u00e9 de cet atelier en lan\u00e7ant sa rediffusion. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ma pr\u00e9sentation<\/h2>\n\n\n\n<figure class=\"wp-block-image alignwide\"><a href=\"https:\/\/slides.com\/imath\/deck-1\/fullscreen\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"708\" src=\"https:\/\/2019.paris.wordcamp.org\/files\/2019\/02\/atelier-7-vignette-presentation-1024x708.png\" alt=\"\" class=\"wp-image-1652\" srcset=\"https:\/\/paris.wordcamp.org\/2019\/files\/2019\/02\/atelier-7-vignette-presentation-1024x708.png 1024w, https:\/\/paris.wordcamp.org\/2019\/files\/2019\/02\/atelier-7-vignette-presentation-300x207.png 300w, https:\/\/paris.wordcamp.org\/2019\/files\/2019\/02\/atelier-7-vignette-presentation-768x531.png 768w, https:\/\/paris.wordcamp.org\/2019\/files\/2019\/02\/atelier-7-vignette-presentation-434x300.png 434w, https:\/\/paris.wordcamp.org\/2019\/files\/2019\/02\/atelier-7-vignette-presentation.png 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Au cours de ma pr\u00e9sentation, j&rsquo;ai montr\u00e9 comment trouver tous les crochets d&rsquo;action et de filtre expos\u00e9s par WordPress \u00e0 l&rsquo;aide d&rsquo;un \u00e9diteur de texte permettant la recherche multi-fichiers (ex: <a rel=\"noreferrer noopener\" aria-label=\"Code (opens in a new tab)\" href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\">Code<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"Sublime Text (opens in a new tab)\" href=\"https:\/\/www.sublimetext.com\/\" target=\"_blank\">Sublime Text<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"Atom (opens in a new tab)\" href=\"https:\/\/atom.io\/\" target=\"_blank\">Atom<\/a>, etc..), toutefois, Mathilde nous a demand\u00e9 si une extension de WordPress permettait de le faire. Je lui ai indiqu\u00e9 que ce qui s&rsquo;en approche le plus est l&rsquo;extension Query Monitor, laquelle permet, entre autres, d&rsquo;afficher le nom des actions par lesquelles \u00ab&nbsp;passe&nbsp;\u00bb une page WordPress.<\/p>\n\n\n\n<figure class=\"wp-block-embed-wordpress aligncenter wp-block-embed is-type-wp-embed is-provider-plugin-directory\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"bB8WDajDVA\"><a href=\"https:\/\/fr.wordpress.org\/plugins\/query-monitor\/\">Query Monitor<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u00ab\u00a0Query Monitor\u00a0\u00bb &#8212; Plugin Directory\" src=\"https:\/\/fr.wordpress.org\/plugins\/query-monitor\/embed\/#?secret=7WiyrFTuEy#?secret=bB8WDajDVA\" data-secret=\"bB8WDajDVA\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Enfin, je ne suis pas all\u00e9 au bout des points que je voulais aborder lors de notre atelier, par manque de temps. Ainsi les derni\u00e8res pages de ma pr\u00e9sentation pr\u00e9voyaient d&rsquo;informer sur :<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>les diff\u00e9rents types d&rsquo;extension <ul><li>fonctionnalit\u00e9 future de WordPress d&rsquo;abord d\u00e9velopp\u00e9e sous la forme d&rsquo;une extension,<\/li><li>rustine dans l&rsquo;attente de la r\u00e9solution d&rsquo;une anomalie du noyau de WordPress,<\/li><li>fonctionnalit\u00e9 sp\u00e9cifique comme une boutique en ligne, par exemple ;<\/li><\/ul><\/li><li>la mani\u00e8re de rapporter une anomalie lorsqu&rsquo;on est utilisateur\u00b7rice (plut\u00f4t dans les forums de support de WordPress.org) et de proposer un correctif lorsqu&rsquo;on est contributeur\u00b7rice (plut\u00f4t sur les miroirs GitHub.com que proposent certaines extensions). <\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Le programme du prochain atelier<\/h2>\n\n\n\n<p>Le 20 mars prochain, nous vous donnons rendez-vous pour aborder la documentation des projets de WordPress. \u00c0 ce propos, j&rsquo;en profite pour vous d\u00e9fier au sujet de notre projet de documentation de la contribution \u00e0 WordPress : nous serions enchant\u00e9\u00b7e\u00b7s que <a href=\"https:\/\/github.com\/WordCampParis\/contribuer-a-wordpress\/issues?q=is%3Aissue+is%3Aopen+label%3A%22aide+recherch%C3%A9e%22\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"ces deux issues (opens in a new tab)\">ces deux issues<\/a> trouvent une r\u00e9solution gr\u00e2ce \u00e0 l&rsquo;une ou \u00e0 l&rsquo;un d&rsquo;entre vous. <\/p>\n\n\n\n<figure class=\"wp-block-embed-meetup-com alignwide wp-block-embed is-type-rich is-provider-meetup\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.meetup.com\/wordpress-ile-de-france\/events\/259184809\/\n<\/div><\/figure>\n\n\n\n<p>Merci \u00e0 \u00c9ric qui a s\u00e9curis\u00e9 la logistique de notre rencontre d&rsquo;une main de ma\u00eetre, \u00e0 Marjorie de nous avoir rejoint et \u00e0 Val\u00e9rie de vous avoir fait vivre le moment qui suit sur Twitter !<\/p>\n\n\n\n<figure class=\"wp-block-embed-twitter aligncenter wp-block-embed is-type-rich is-provider-twitter\"><div class=\"wp-block-embed__wrapper\">\n<a class=\"twitter-moment\" data-width=\"640\" data-dnt=\"true\" href=\"https:\/\/twitter.com\/i\/moments\/1098946918888194050?ref_src=twsrc%5Etfw\">Contributor Day Atelier #7<\/a><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Le mardi 19 f\u00e9vrier 2019 s&rsquo;est tenu notre septi\u00e8me atelier de pr\u00e9paration \u00e0 la journ\u00e9e de contribution du WordCamp Paris 2019. Nous \u00e9tions onze contributeur\u00b7rice\u00b7s et avons investi une des tables du dernier \u00e9tage du campus Parmentier de l&rsquo;Epitech. Comme le montre la photo \u00e0 la une, nous nous sommes install\u00e9\u00b7e\u00b7s en configuration \u00ab&nbsp;table de &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/paris.wordcamp.org\/2019\/atelier-7-initiation-aux-crochets-de-wordpress\/\" class=\"more-link\">Continuer la lecture <span class=\"screen-reader-text\"> \u00ab\u00a0#Atelier 7 : initiation aux crochets de WordPress \ud83d\udd0c\ud83c\udfa3\u00a0\u00bb<\/span><\/a><\/p>\n","protected":false},"author":6594935,"featured_media":1653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1268829,1265960],"tags":[1265961],"class_list":["post-1650","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-atelier-de-contribution","category-journee-de-contribution","tag-atelier","entry"],"jetpack_featured_media_url":"https:\/\/paris.wordcamp.org\/2019\/files\/2019\/02\/atelier-7-photo-une.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pa49y4-qC","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/posts\/1650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/users\/6594935"}],"replies":[{"embeddable":true,"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/comments?post=1650"}],"version-history":[{"count":10,"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/posts\/1650\/revisions"}],"predecessor-version":[{"id":1663,"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/posts\/1650\/revisions\/1663"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/media\/1653"}],"wp:attachment":[{"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/media?parent=1650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/categories?post=1650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paris.wordcamp.org\/2019\/wp-json\/wp\/v2\/tags?post=1650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}