{"id":229940,"date":"2022-11-17T11:17:00","date_gmt":"2022-11-17T08:17:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229940"},"modified":"2022-11-09T19:23:20","modified_gmt":"2022-11-09T16:23:20","slug":"modeles-wordpress-pour-debutants-bois","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/modeles-wordpress-pour-debutants-bois\/","title":{"rendered":"Mod\u00e8les WordPress pour d\u00e9butants : bois"},"content":{"rendered":"\n<p>Depuis que j&rsquo;ai parl\u00e9 de mod\u00e8les WordPress, j&rsquo;ai couvert diff\u00e9rents moteurs disponibles\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/viniwrubleski\/jade-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jade-PHP<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/cjonasw\/wordpress-starter-theme-mustache\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Moustache<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/zach-adams\/sprig-foundation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Brin<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jenssegers\/blade\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Lame<\/a><\/li>\n<\/ul>\n<p>Si vous regardez Moustache, alors vous pourriez \u00eatre int\u00e9ress\u00e9 par les guidons, et si vous regardez Blade, alors je vous recommande fortement de consulter <a href=\"https:\/\/roots.io\/sage\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sage<\/a> de l&rsquo; \u00e9quipe <a href=\"https:\/\/roots.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Roots<\/a>.<\/p>\n<p>Mais pour ce dernier article, je vais continuer avec Timber, ce que j&rsquo;ai pr\u00e9sent\u00e9 hier. Je ne suis pas tellement sur ce qui est utilis\u00e9 (car ils ont tous leurs compromis) tant que c&rsquo;est coh\u00e9rent.<\/p>\n<h2>Templates WordPress: Utilisation de Timber<\/h2>\n<p>Cela dit, voici comment vous pouvez commencer \u00e0 utiliser <a href=\"https:\/\/www.upstatement.com\/timber\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Timber<\/a> dans vos projets.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ec006741.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-165381-61e77ec006741.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>Pour commencer, vous devrez vous familiariser avec Composer et vous aurez besoin d&rsquo;avoir une configuration d&rsquo;environnement de d\u00e9veloppement local. Si vous n&rsquo;avez ni l&rsquo;un ni l&rsquo;autre ou si vous avez besoin d&rsquo;aide, alors je suis l\u00e0 pour vous\u00a0:<\/p>\n<ol>\n<li><a href=\"https:\/\/tommcfarlin.com\/laravel-valet-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Utilisation de Laravel pour le d\u00e9veloppement WordPress<\/a><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/tag\/configuring-composer-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Configuration de Composer pour WordPress<\/a><\/li>\n<\/ol>\n<p>Une fois que vous avez suivi les \u00e9tapes de chacun de ces guides, vous devriez \u00eatre pr\u00eat \u00e0 partir. Voici donc ce que nous allons faire.<\/p>\n<h3>1 Configurer une installation locale pour le bois<\/h3>\n<p>Je vais utiliser Valet pour cela, ce qui signifie que je vais avoir un r\u00e9pertoire avec la derni\u00e8re version de <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> (qui est 4.8.3) install\u00e9e dans son r\u00e9pertoire.<\/p>\n<p>Cela signifie que j&rsquo;aurai une base de donn\u00e9es d\u00e9j\u00e0 pr\u00eate \u00e0 l&#8217;emploi\u00a0:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ec4380aa.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-165381-61e77ec4380aa.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>Et je vais avoir \u00e9mis les commandes suivantes pour configurer Laravel et une installation s\u00e9curis\u00e9e (pour imiter un environnement de staging):<\/p>\n<pre><code>$ valet link\n$ valet secure<\/code><\/pre>\n<p>Pour que je puisse acc\u00e9der au site dans un navigateur.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ec7806b6.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-165381-61e77ec7806b6.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>Pour ceux qui sont curieux, j&rsquo;utilise :<\/p>\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> 4.8.3<\/li>\n<li><a href=\"https:\/\/wordpress.org\/themes\/twentyfifteen\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vingt-quinze<\/a><\/li>\n<li>Nettoyer les permaliens<\/li>\n<\/ul>\n<p>Et pas d&rsquo;autres plugins. C&rsquo;est juste une installation vanille autre que ce que vous voyez ci-dessus.<\/p>\n<p>\u00c0 ce stade, je suis pr\u00eat \u00e0 installer Timber.<\/p>\n<h3>2 Installation du bois<\/h3>\n<p>En supposant que vous ayez suivi les guides ci-dessus pour Valet et Composer, vous devriez \u00eatre pr\u00eat \u00e0 partir. Donc, \u00e0 l&rsquo;aide d&rsquo;un terminal, acc\u00e9dez \u00e0 votre r\u00e9pertoire d&rsquo;installation WordPress.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ecb7040b.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-165381-61e77ecb7040b.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>Lancez ensuite la commande suivante\u00a0:<\/p>\n<pre><code>$ composer require timber\/timber<\/code><\/pre>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ece8223b.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-165381-61e77ece8223b.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>Cela installera Timber, mais vous devrez toujours mettre \u00e0 jour le fichier functions.php de votre th\u00e8me afin qu&rsquo;il utilise correctement le chargeur automatique de Composer.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ed28264d.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-165381-61e77ed28264d.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>En supposant que tout s&rsquo;est d\u00e9roul\u00e9 correctement, vous devriez pouvoir actualiser votre site, acc\u00e9der \u00e0 tous les messages, pages, etc. et rien ne devrait \u00eatre hors service.<\/p>\n<h3>3 Initialisation du bois<\/h3>\n<p>Enfin, il est temps d&rsquo;utiliser Timber pour remplacer une grande partie de ce que nous avons l&rsquo;habitude de voir dans le contexte d&rsquo;un mod\u00e8le WordPress.<\/p>\n<p>Je choisis de le faire dans <strong>content-page.php<\/strong> pour le rendre facile \u00e0 suivre. Notez que le segment de code que je modifie <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-04-content-page-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ressemble \u00e0 ceci \u00e0 l&rsquo;origine\u00a0:<\/a><\/p>\n<pre><code>&lt;article id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;\n    &lt;?php\n        \/\/ Post thumbnail.\n        twentyfifteen_post_thumbnail();\n    ?&gt;\n\n    &lt;header class=\"entry-header\"&gt;\n        &lt;?php the_title( '&lt;h1 class=\"entry-title\"&gt;', '&lt;\/h1&gt;' ); ?&gt;\n    &lt;\/header&gt;&lt;!-- .entry-header --&gt;\n\n    &lt;div class=\"entry-content\"&gt;\n        &lt;?php the_content(); ?&gt;\n        &lt;?php\n            wp_link_pages( array(\n                'before'      =&gt; '&lt;div class=\"page-links\"&gt;&lt;span class=\"page-links-title\"&gt;'. __( 'Pages:', 'twentyfifteen' ). '&lt;\/span&gt;',\n                'after'       =&gt; '&lt;\/div&gt;',\n                'link_before' =&gt; '&lt;span&gt;',\n                'link_after'  =&gt; '&lt;\/span&gt;',\n                'pagelink'    =&gt; '&lt;span class=\"screen-reader-text\"&gt;'. __( 'Page', 'twentyfifteen' ). ' &lt;\/span&gt;%',\n                'separator'   =&gt; '&lt;span class=\"screen-reader-text\"&gt;, &lt;\/span&gt;',) );\n        ?&gt;\n    &lt;\/div&gt;&lt;!-- .entry-content --&gt;\n\n    &lt;?php edit_post_link( __( 'Edit', 'twentyfifteen' ), '&lt;footer class=\"entry-footer\"&gt;&lt;span class=\"edit-link\"&gt;', '&lt;\/span&gt;&lt;\/footer&gt;&lt;!-- .entry-footer --&gt;' ); ?&gt;\n\n&lt;\/article&gt;&lt;!-- #post-## --&gt;<\/code><\/pre>\n<p>Dans cet article, je ne vais pas recr\u00e9er compl\u00e8tement ce que vous voyez ci-dessus, mais je vais commencer par ce qui est n\u00e9cessaire pour commencer \u00e0 utiliser un moteur de template dans le contexte d&rsquo;une fondation PHP.<\/p>\n<p>Tout d&rsquo;abord, vous devrez cr\u00e9er un mod\u00e8le pouvant \u00eatre appliqu\u00e9 \u00e0 la page d&rsquo;exemple dans une installation WordPress standard. J&rsquo;ai appel\u00e9 le mien <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-05-template-timber-page-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">template-timber-page.php<\/a> et il ressemble \u00e0 ceci :<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Template Name: Timber Template\n * Description: Replaces the standard page with a Timber template.\n *\/\n\n$timber  = new TimberTimber();\n$context = Timber::get_context();\n$post    = new TimberPost();\n\n$context['post'] = $post;\nTimber::render(\n  array( 'content-'. $post-&gt;post_name. '.twig', 'page.twig' ),\n  $context\n);\n<\/code><\/pre>\n<p>Dans le code ci-dessus, voici ce qui se passe\u00a0:<\/p>\n<ol>\n<li>\u00a0J&rsquo;instancie l&rsquo;objet Timber.<\/li>\n<li>Ensuite, je re\u00e7ois un contexte Timber. Le contexte contient de nombreuses informations utiles dans le mod\u00e8le (ou le site) selon l&rsquo;endroit o\u00f9 vous utilisez votre mod\u00e8le.<\/li>\n<li>Apr\u00e8s cela, je saisis un TimberPost qui est essentiellement une extension d&rsquo;un article WordPress. Il a les donn\u00e9es de WP_Post mais les rend disponibles pour nos mod\u00e8les.<\/li>\n<li>Ensuite, j&rsquo;ai d\u00e9fini l&rsquo; index de <strong>publication du tableau<\/strong> <strong>$context<\/strong> avec une r\u00e9f\u00e9rence au Timber Post (que j&rsquo;ai appel\u00e9 <strong>$post<\/strong> ).<\/li>\n<li>Enfin, je dis \u00e0 Timber de rendre une page appel\u00e9e <strong>content-sample-page.twig<\/strong> en utilisant le contexte donn\u00e9.<\/li>\n<\/ol>\n<p>C&rsquo;est l\u00e0 qu&rsquo;il est important de cr\u00e9er le fichier twig r\u00e9el (qui est l&rsquo;extension du fichier de mod\u00e8le Timber). J&rsquo;ai donc cr\u00e9\u00e9 <strong>content-sample-page.twig<\/strong> et il ressemble <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-06-cotent-sample-page-twig\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e0 ceci\u00a0:<\/a><\/p>\n<pre><code>{% block content %}\n  &lt;article id=\"post-{{post.ID}}\" class=\"{{body_class}}\"&gt;\n\n    &lt;header class=\"entry-header\"&gt;\n      &lt;h1 class=\"article-h1\"&gt;{{post.title}}&lt;\/h1&gt;\n    &lt;\/header&gt;&lt;!-- .entry-header --&gt;\n\n    &lt;div class=\"entry-content\"&gt;\n        {{post.content}}\n    &lt;\/div&gt;&lt;!-- .entry-content --&gt;\n\n  &lt;\/article&gt;&lt;!-- #post-## --&gt;\n{% endblock %}\n<\/code><\/pre>\n<p>Apr\u00e8s avoir instanci\u00e9 l&rsquo;objet Timber puis remplac\u00e9 le code que vous voyez ci-dessus, vous remarquerez que le code se lit un peu diff\u00e9remment (mais pas tout \u00e0 fait difficile \u00e0 suivre).<\/p>\n<h3>4 Application du mod\u00e8le<\/h3>\n<p>Pour appliquer le mod\u00e8le, acc\u00e9dez \u00e0 <strong>Pages<\/strong> dans WordPress. Localisez <strong>Sample Page<\/strong> puis, dans la liste d\u00e9roulante des mod\u00e8les, choisissez celui que nous venons de cr\u00e9er en utilisant le titre ci-dessus\u00a0:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77ed87f4dc.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-165381-61e77ed87f4dc.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>Une fois cela fait, vous pouvez voir le message. Vous remarquerez qu&rsquo;il a l&rsquo;air un peu nu par rapport \u00e0 ce que nous avons l&rsquo;habitude de voir :<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165381-61e77eddccec8.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-165381-61e77eddccec8.png\" alt=\"Mod\u00e8les WordPress pour d\u00e9butants : bois\" ><\/a><\/p>\n<p>Mais vous avez une id\u00e9e g\u00e9n\u00e9rale de la fa\u00e7on dont nous pouvons utiliser le contexte pour acc\u00e9der \u00e0 bon nombre des m\u00eames propri\u00e9t\u00e9s que nous avons l&rsquo;habitude de voir dans WordPress sans avoir \u00e0 encombrer le code de balisage et de PHP et de tout ce que nous utilisons. \u00e0 utiliser.<\/p>\n<h2>Davantage de ressources<\/h2>\n<p>Je sais qu&rsquo;il s&rsquo;agit principalement d&rsquo;un cours acc\u00e9l\u00e9r\u00e9 sur les mod\u00e8les et qu&rsquo;il ne couvre pas autant qu&rsquo;il le pourrait. Comme ce message approche les 1000 mots, j&rsquo;ai besoin de tracer la ligne quelque part, donc je choisis de le faire ici.<\/p>\n<p>Cela ne signifie pas pour autant que j&rsquo;ai fini d&rsquo;en discuter. Je pr\u00e9vois de revenir sur des sujets plus avanc\u00e9s autour des mod\u00e8les dans de futurs pots.<\/p>\n<p>Mais si vous \u00eates int\u00e9ress\u00e9, je vous recommande fortement de suivre \u00e0 la fois le guide de <a href=\"https:\/\/timber.github.io\/docs\/getting-started\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u00e9marrage<\/a> pour Timber et le projet sur <a href=\"https:\/\/github.com\/timber\/timber\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a>.<\/p>\n<p>Cela vous donnera au moins un point de d\u00e9part \u00e0 partir duquel vous pourrez faire encore plus de progr\u00e8s dans vos efforts pour cr\u00e9er un code plus propre et plus logiquement s\u00e9par\u00e9 que ce que nous avons l&rsquo;habitude de voir dans WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;utilisation d&rsquo;un moteur tel que Timber peut aider \u00e0 am\u00e9liorer la s\u00e9paration des pr\u00e9occupations dans les mod\u00e8les WordPress. Voici un exemple de comment commencer.<\/p>\n","protected":false},"author":1,"featured_media":165382,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,925,841,862],"tags":[1167],"class_list":["post-229940","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-sujets","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229940","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=229940"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229940\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/165382"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}