{"id":234200,"date":"2023-02-11T17:50:00","date_gmt":"2023-02-11T14:50:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234200"},"modified":"2022-11-11T23:59:43","modified_gmt":"2022-11-11T20:59:43","slug":"tutoriel-sur-le-theme-wordpress-pour-les-debutants-partie-11-modeles-de-page-personnalises","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/tutoriel-sur-le-theme-wordpress-pour-les-debutants-partie-11-modeles-de-page-personnalises\/","title":{"rendered":"Tutoriel sur le th\u00e8me WordPress pour les d\u00e9butants \u2013 Partie 11 : Mod\u00e8les de page personnalis\u00e9s"},"content":{"rendered":"\n<p>Dans cette le\u00e7on de didacticiel sur le th\u00e8me WordPress pour les d\u00e9butants, nous apprenons les mod\u00e8les de page, ce qu&rsquo;ils sont, comment les cr\u00e9er et les meilleures pratiques. Nous allons cr\u00e9er un mod\u00e8le pleine largeur \u00e0 titre d&rsquo;exemple. En cours de route, nous ajoutons \u00e9galement une classe au corps en demandant si la page utilise un mod\u00e8le de page sp\u00e9cifique.<\/p>\n<h2>Que sont les mod\u00e8les de page<\/h2>\n<p>Les mod\u00e8les de page sont utiles dans les cas o\u00f9 vous souhaitez une mise en page ou une configuration diff\u00e9rente pour une page sp\u00e9cifique. Des exemples courants d&rsquo;utilisations de mod\u00e8les de page r\u00e9pertorient les publications dans un type de publication personnalis\u00e9 (par exemple, portfolio, livres ou services), ayant un contenu ou une mise en page compl\u00e8tement diff\u00e9rent (par exemple, \u00e0 l&rsquo;int\u00e9rieur de colonnes), ou m\u00eame simplement en cr\u00e9ant une page pleine largeur (pas de barre lat\u00e9rale).<\/p>\n<p>La convivialit\u00e9 des mod\u00e8les de page a diminu\u00e9 apr\u00e8s la version 5.x de WordPress (Gutenberg). Le nouvel \u00e9diteur Gutenberg permet une grande flexibilit\u00e9 pour cr\u00e9er de telles pages sans avoir besoin de mod\u00e8les de page. Quoi qu&rsquo;il en soit, nous apprendrons comment ajouter un mod\u00e8le de page personnalis\u00e9 dans notre th\u00e8me.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153948-61e516ac9d3c4.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-153948-61e516ac9d3c4.png\" alt=\"Tutoriel sur le th\u00e8me WordPress pour les d\u00e9butants \u2013 Partie 11 : Mod\u00e8les de page personnalis\u00e9s\" ><\/a><\/p>\n<p>\u00c0 l&rsquo;int\u00e9rieur de la m\u00e9tabox &quot;Attributs de page&quot; pour les pages se trouve le choix du mod\u00e8le de page. Mais l&rsquo;option de mod\u00e8le n&rsquo;appara\u00eetra que si le th\u00e8me actif a au moins un mod\u00e8le de page.<\/p>\n<p>Les mod\u00e8les de page peuvent \u00e9galement \u00eatre utilis\u00e9s pour les publications et les types de publication personnalis\u00e9s. Apr\u00e8s WordPress 4.7 et versions ult\u00e9rieures, vous pouvez d\u00e9finir les types de publication pour lesquels vous souhaitez que le mod\u00e8le soit disponible. WordPress ajoutera automatiquement la m\u00e9tabox \u00ab\u00a0Attributs de page\u00a0\u00bb requise \u00e0 ces types de publication.<\/p>\n<h2>D\u00e9nomination et emplacement du mod\u00e8le de page<\/h2>\n<p>Pour commencer, vous feriez g\u00e9n\u00e9ralement une copie du fichier de mod\u00e8le le plus proche de ce que vous souhaitez obtenir avec le mod\u00e8le de page. Dans la plupart des cas, c&rsquo;est <code>page.php<\/code>. Quant \u00e0 la d\u00e9nomination de votre mod\u00e8le de page, c&rsquo;est \u00e0 vous de d\u00e9cider. Mais il y a des r\u00e8gles et du bon sens.<\/p>\n<p>Il est tentant de nommer simplement votre mod\u00e8le de page, par exemple <code>page-books.php<\/code>pour un mod\u00e8le r\u00e9pertoriant des livres de type publication personnalis\u00e9e. Ne pr\u00e9fixez jamais votre mod\u00e8le de page avec &lsquo; <code>page-<\/code>&lsquo;! Si vous vous souvenez de <a href=\"https:\/\/codex.wordpress.org\/File:Template_Hierarchy.png#file\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la hi\u00e9rarchie des mod\u00e8les<\/a> de WordPress, WordPress recherchera <code>page-&lt;slug&gt;.php<\/code>avant de tenter <code>page.php<\/code>, et les utilisateurs de votre th\u00e8me pourraient rencontrer un comportement inattendu.<\/p>\n<p>Une bonne pratique consiste \u00e0 pr\u00e9fixer votre mod\u00e8le de page avec quelque chose qui ne fait pas partie des noms de mod\u00e8le de page de WordPress. Par exemple &lsquo; <code>pagetemplate-'<\/code>, &lsquo; <code>pt-<\/code>&lsquo; ou simplement le nom complet &lsquo; <code>fullwidth-template.php<\/code>&lsquo;. Il est \u00e9galement recommand\u00e9 de les conserver dans un sous-dossier\u00a0; <code>\/page-templates\/<\/code>cependant, ce n&rsquo;est pas bon si vous voulez que votre th\u00e8me soit disponible pour s&rsquo;\u00e9tendre avec un th\u00e8me enfant. Un th\u00e8me enfant ne peut pas remplacer les mod\u00e8les de page qui sont plac\u00e9s dans un sous-dossier du th\u00e8me parent.<\/p>\n<p>Une fois que vous avez d\u00e9cid\u00e9 d&rsquo;un mod\u00e8le de nommage, continuons et cr\u00e9ons un mod\u00e8le de page.<\/p>\n<h2>Cr\u00e9ation d&rsquo;un mod\u00e8le de page<\/h2>\n<p>Faites une copie de <code>page.php<\/code>et renommez-le en <code>pagetemplate-fullwidth.php<\/code>. Pour en faire un mod\u00e8le de page, il vous suffit d&rsquo;ajouter un commentaire au tout d\u00e9but qui indique \u00e0 WordPress qu&rsquo;il s&rsquo;agit d&rsquo;un mod\u00e8le de page\u00a0:<\/p>\n<pre><code>&lt;?php \n\/*\nTemplate Name: Fullwidth \n*\/\nget_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n...<\/code><\/pre>\n<p>Tout ce dont vous avez besoin est un commentaire au tout d\u00e9but du fichier, avec \u00ab\u00a0Nom du mod\u00e8le\u00a0:\u00a0\u00bb suivi du nom de votre mod\u00e8le. C&rsquo;est \u00e7a! Allez dans l&rsquo;administrateur, modifiez une page et vous devriez voir l&rsquo;option de choisir &quot;Fullwidth&quot; comme mod\u00e8le.<\/p>\n<p>J&rsquo;ai mentionn\u00e9 que dans WordPress 4.7, vous pouvez d\u00e9finir les types de publication pour lesquels vous souhaitez que le mod\u00e8le de page soit disponible. Pour le moment, il n&rsquo;est disponible que pour les pages, mais dites-vous que vous voulez \u00e9galement avoir la possibilit\u00e9 de cr\u00e9er des articles en pleine largeur\u00a0? Dans ce cas, ajoutez \u00ab\u00a0Template Post Type\u00a0:\u00a0\u00bb dans le m\u00eame bloc de commentaires et d\u00e9finissez vos types de publication s\u00e9par\u00e9s par une virgule. Par exemple, pour le rendre disponible \u00e0 la fois pour les publications et les pages\u00a0;<\/p>\n<pre><code>&lt;?php \n\/*\nTemplate Name: Fullwidth \nTemplate Post Type: post, page\n*\/\nget_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n...<\/code><\/pre>\n<p>Modifiez une publication et vous devriez voir une nouvelle m\u00e9tabox &quot;Attributs de publication&quot; o\u00f9 vous pouvez choisir le mod\u00e8le pleine largeur. Agr\u00e9able!<\/p>\n<h2>Modification du code dans notre mod\u00e8le de page<\/h2>\n<p>Modifions maintenant le mod\u00e8le de page pour qu&rsquo;il fasse quelque chose de diff\u00e9rent de la vue d&rsquo;une seule page. Supprimons le mod\u00e8le de demande de barre lat\u00e9rale\u00a0: (je l&rsquo;ai comment\u00e9 pour le rendre plus visible, mais vous pouvez simplement supprimer la ligne).<\/p>\n<pre><code>...\n    ?&gt;&lt;p&gt;&lt;?php _e('No posts, sorry.', 'wptutorial'); ?&gt;&lt;\/p&gt;&lt;?php\n}\n\/\/get_sidebar(); \nget_footer(); ?&gt;<\/code><\/pre>\n<p>Faisons encore une chose pour rendre notre mod\u00e8le de page plus facile \u00e0 styliser. Lorsque vous ajoutez du CSS, vous avez souvent besoin de savoir si la page a une barre lat\u00e9rale ou non, afin d&rsquo;ajuster les colonnes\/la mise en page. Rappelez -vous <code>body_class<\/code>qui fournit tout un tas de classes utiles \u00e0 l&rsquo;\u00e9l\u00e9ment body\u00a0? Et si nous ajoutions une classe personnalis\u00e9e sur le corps qui nous indique si la page actuelle a une barre lat\u00e9rale ou non\u00a0?<\/p>\n<h2>Filtrer sur<code>body_class<\/code><\/h2>\n<p>Remarque\u00a0: Vous avez peut-\u00eatre remarqu\u00e9 que toute page ou publication utilisant un mod\u00e8le de page obtient d\u00e9j\u00e0 une classe de corps sp\u00e9cifique\u00a0; &quot;page-template-&quot; &#8211; dans notre exemple <code>\"page-template-pagetemplate-fullwidth\"<\/code>. C&rsquo;est une classe assez longue, et en plus, nous voulons rendre notre th\u00e8me plus flexible &#8211; et autoriser la pleine largeur sur d&rsquo;autres mod\u00e8les en dehors de ceux utilisant le mod\u00e8le de page. Par exemple, vous ne voulez g\u00e9n\u00e9ralement pas de barre lat\u00e9rale sur la page d&rsquo;accueil, n&rsquo;est-ce pas\u00a0?<\/p>\n<p>Remarque: Cela ajoute uniquement une classe au corps afin que le style soit plus facile, cela ne d\u00e9sactive pas r\u00e9ellement la sortie de la barre lat\u00e9rale. Vous devez vous rappeler de supprimer le <code>get_sidebar()<\/code>partout o\u00f9 vous ne le voudrez pas.<\/p>\n<p>Ajoutons un filtre pour <code>body_class<\/code>ajouter une classe de barre lat\u00e9rale personnalis\u00e9e dans notre <code>functions.php<\/code>, afin que vous puissiez en ajouter plus tard dans d&rsquo;autres cas o\u00f9 vous ne voulez pas la barre lat\u00e9rale. WordPress a une belle balise conditionnelle pour v\u00e9rifier si un mod\u00e8le de page est utilis\u00e9 ; <code>is_page_template()<\/code>o\u00f9 vous mettez le nom de votre mod\u00e8le de page en param\u00e8tre. Nous voulons ajouter une classe si ce n&rsquo;est pas vrai, nous ajoutons donc l&rsquo;inverse avec &quot;!&quot;\u00a0:<\/p>\n<pre><code>add_filter('body_class', 'wptutorial_body_class_filter');\nfunction wptutorial_body_class_filter($classes) {\n    if (!is_page_template('pagetemplate-fullwidth.php')) {\n        $classes[] = 'has-sidebar';\n    }\n    return $classes;\n}<\/code><\/pre>\n<p>Tr\u00e8s probablement, pendant que vous d\u00e9veloppez les mod\u00e8les, vous rencontrerez parfois des mod\u00e8les auxquels vous ne souhaitez pas ajouter la classe sidebar, et au fur et \u00e0 mesure, ajoutez ces cas \u00e0 l&rsquo;int\u00e9rieur de this <code>if<\/code>. Par exemple, si vous ne voulez pas que la classe sidebar soit sur la page d&rsquo;accueil, vous pouvez ajouter <code>!is_front_page()<\/code>. Cela ajoutera la classe &lsquo;has-sidebar&rsquo; \u00e0 toutes les pages sauf frontpage et le mod\u00e8le de page\u00a0:<\/p>\n<pre><code>if (!is_front_page() &amp;&amp; !is_page_template('pagetemplate-fullwidth.php'))<\/code><\/pre>\n<p>C&rsquo;est \u00e0 vous de d\u00e9cider combien de mod\u00e8les de page vous voulez et ce qu&rsquo;ils doivent contenir. Ce n&rsquo;\u00e9tait qu&rsquo;une simple introduction. Si vous souhaitez savoir comment interroger d&rsquo;autres publications dans un mod\u00e8le de page, consultez l&rsquo; <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-12-custom-post-queries\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e9tape suivante<\/a>.<\/p>\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 th\u00e9matique pour d\u00e9butants, nous en apprenons davantage sur les mod\u00e8les de page personnalis\u00e9s dans WordPress ; ce qu&rsquo;ils sont, comment les cr\u00e9er et les meilleures pratiques.<\/p>\n","protected":false},"author":1,"featured_media":223984,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,893,717,717,832,1110,801,801,832,925,925,841,841,862,862],"tags":[1167],"class_list":{"0":"post-234200","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-code-2","9":"category-developpeur","11":"category-guide-pour-les-debutants","12":"category-n-a","13":"category-php-3","16":"category-sujets","18":"category-tutoriels","20":"category-wordpress-3","22":"tag-affiai-fr"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234200","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=234200"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234200\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/223984"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}