{"id":712,"date":"2016-04-07T00:00:26","date_gmt":"2016-04-06T22:00:26","guid":{"rendered":"http:\/\/lamartinieredesign.fr\/?page_id=712"},"modified":"2016-04-15T19:33:06","modified_gmt":"2016-04-15T17:33:06","slug":"creer-un-theme-complet-part-3","status":"publish","type":"page","link":"https:\/\/lamartinieredesign.fr\/?page_id=712","title":{"rendered":"Cr\u00e9er un th\u00e8me complet &#8211; part 3"},"content":{"rendered":"<h4>Le fichier index.php<\/h4>\n<p>C&rsquo;est le fichier qui est utilis\u00e9 par d\u00e9faut comme page d&rsquo;accueil du site. Il va contenir le code pour afficher le contenu du site, notamment les articles. Nous ferons simple, mais il est possible de sp\u00e9cifier quels articles seront affich\u00e9s ou pas sur cette page.<\/p>\n<p>Le code de ce fichier se r\u00e9partit de deux mani\u00e8res :<br \/>\n&#8211; le c\u0153ur du code, qui permet d&rsquo;appeler les articles. C&rsquo;est ce que l&rsquo;on appelle la boucle WordPress. Il repr\u00e9sente pour nous, ce que contient la balise &lt;section&gt;<br \/>\n&#8211; le reste du code qui consiste \u00e0 appeler le code qui a \u00e9t\u00e9 \u00e9crit dans les autres fichiers, header.php, sidebar.php et footer.php.\u00a0Ce principe, appel\u00e9 <em>include<\/em> en PHP permet au final de reconstituer le code complet correspondant au contenu initial de notre page HTML.<\/p>\n<h4>L&rsquo;appel du fichier header.php<\/h4>\n<p>C&rsquo;est une simple fonction PHP qui tient en une ligne, \u00e0 placer au d\u00e9but du fichier index.php :<br \/>\n<code>&lt;?php get_header() ; ?&gt;<\/code><\/p>\n<p>Pour m\u00e9moire, la balise ouvrante &lt;section&gt; se trouve dans le fichier header.php; il ne faut donc pas la remettre dans le fichier index.php<\/p>\n<h4>La boucle WordPress<\/h4>\n<p>Voici le code g\u00e9n\u00e9ral de la boucle :<\/p>\n<p>[pcsh lang=\u00a0\u00bbxml\u00a0\u00bb tab_size=\u00a0\u00bb4&Prime; message=\u00a0\u00bb\u00a0\u00bb hl_lines=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb]<\/p>\n<pre><code>&lt;?php if(have_posts()): ?&gt;\r\n\t&lt;?php while( have_posts() ) : the_post(); ?&gt;\r\n    \t&lt;article class=&#34;vignette&#34;&gt;\r\n    \t\t\r\n\t\t\t&lt;h3&gt;\r\n\t\t\t\t&lt;a href=&#34;&lt;?php the_permalink(); ?&gt;&#34;&gt; &lt;?php the_title(); ?&gt; &lt;\/a&gt;\r\n\t\t\t&lt;\/h3&gt;\r\n\t\t\t&lt;div class=&#34;thumb_engin&#34;&gt;&lt;?php the_post_thumbnail(&#039;thumbnail&#039;); ?&gt;&lt;\/div&gt;\r\n\t\t\t&lt;p&gt; &lt;?php the_excerpt(); ?&gt;&lt;\/p&gt;\r\n  \t\t&lt;\/article&gt;\r\n\t\t&lt;?php endwhile; ?&gt;\r\n&lt;?php endif; ?&gt;<\/code><\/pre>\n<p>[\/pcsh]<\/p>\n<p>Celle-ci commence par un test pour v\u00e9rifier qu&rsquo;il y a bien dans la base de donn\u00e9es quelque chose \u00e0 afficher (s&rsquo;il y a des posts), ce test devant se clore par l&rsquo;instruction <em>endif<\/em> :<br \/>\n<code>&lt;?php if(have_posts()): ?&gt;<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0 code de la boucle<\/code><br \/>\n<code> &lt;?php endif; ?&gt;<\/code><\/p>\n<p>\u00c0 l&rsquo;int\u00e9rieur de la condition, on poursuit par une boucle while() qui consiste \u00e0 afficher les posts tant qu&rsquo;il y en a (gr\u00e2ce \u00e0 la fonction <em>the_posts<\/em>) et qui se termine \u00e9galement par l&rsquo;instruction <em>endwhile<\/em> :<br \/>\n<code> &lt;?php while( have_posts() ) : the_post(); ?&gt;<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0 code pour le contenu des posts<\/code><br \/>\n<code> &lt;?php endwhile; ?&gt;<\/code><\/p>\n<p>Enfin, \u00e0 l&rsquo;int\u00e9rieur de la boucle PHP, se trouve le code HTML qui va baliser les \u00e9l\u00e9ments des posts que l&rsquo;on choisit d&rsquo;afficher. Cela se traduit par l&rsquo;insertion de fonctions PHP qui sont toutes sur le mod\u00e8le <em>the_quelquechose()<\/em>. Vous pouvez trouver la liste des fonctions disponibles dans ce contexte dans le codex WordPress. On parle de marqueurs de mod\u00e8le, et plus particuli\u00e8rement de marqueurs des articles :<br \/>\n<a href=\"https:\/\/codex.wordpress.org\/fr:Marqueurs_de_Modele\" target=\"_blank\">https:\/\/codex.wordpress.org\/fr:Marqueurs_de_Modele<\/a><\/p>\n<p>Ici, nous retiendrons trois choses, le titre de l&rsquo;article (<em>the_title<\/em>), l&rsquo;image \u00e0 la une (<em>the_post_thumbnail<\/em>) et un extrait du texte de l&rsquo;article (<em>the_exerpt<\/em>). Bien entendu, ce choix est \u00e0 adapter \u00e0 vos besoins. Il ne faut pas oublier de mettre un lien (<em>the_permalink<\/em>) sur le titre, ce lien permet d&rsquo;ouvrir l&rsquo;article seul dans une page, g\u00e9n\u00e9ralement la page single.php, que nous ne cr\u00e9erons pas dans le cadre de ce tutoriel (renseignez-vous sur le net pour cela).<\/p>\n<p>Pour en savoir plus sur la boucle WordPress, toujours le codex :<br \/>\n<a href=\"https:\/\/codex.wordpress.org\/fr:La_Boucle\" target=\"_blank\">https:\/\/codex.wordpress.org\/fr:La_Boucle<\/a><\/p>\n<h4>L&rsquo;appel des autres fichiers<\/h4>\n<p>Il faut d&rsquo;abord penser \u00e0 clore la balise <em>&lt;section&gt;<\/em> ouverte dans le fichier header.php :<br \/>\n<code>&lt;\/section&gt;<\/code><\/p>\n<p>De m\u00eame que pour le fichier header.php, il faut clore le fichier index.php en appelant si besoin le fichier sidebar.php, puis le fichier footer.php, ce qui se traduit \u00e0 la fin du code par les deux lignes suivantes :<br \/>\n<code>&lt;?php get_sidebar() ; ?&gt;<\/code><br \/>\n<code>&lt;?php get_footer() ; ?&gt;<\/code><\/p>\n<p>Voici donc le code complet du fichier index.php :<\/p>\n<p>[pcsh lang=\u00a0\u00bbxml\u00a0\u00bb tab_size=\u00a0\u00bb4&Prime; message=\u00a0\u00bb\u00a0\u00bb hl_lines=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb]<\/p>\n<pre><code>&lt;?php get_header() ; ?&gt;\r\n\r\n&lt;?php if(have_posts()): ?&gt;\r\n\t&lt;?php while( have_posts() ) : the_post(); ?&gt;\r\n    \t&lt;article class=&#34;vignette&#34;&gt;\r\n    \t\t\r\n\t\t\t&lt;h3&gt;\r\n\t\t\t\t&lt;a href=&#34;&lt;?php the_permalink(); ?&gt;&#34;&gt; &lt;?php the_title(); ?&gt; &lt;\/a&gt;\r\n\t\t\t&lt;\/h3&gt;\r\n\t\t\t&lt;div class=&#34;thumb_engin&#34;&gt;&lt;?php the_post_thumbnail(&#039;thumbnail&#039;); ?&gt;&lt;\/div&gt;\r\n\t\t\t&lt;p&gt; &lt;?php the_excerpt(); ?&gt;&lt;\/p&gt;\r\n  \t\t&lt;\/article&gt;\r\n\t\t&lt;?php endwhile; ?&gt;\r\n&lt;?php endif; ?&gt;\r\n\r\n&lt;\/section&gt;\r\n\r\n&lt;?php get_sidebar() ; ?&gt;\r\n&lt;?php get_footer() ; ?&gt;<\/code><\/pre>\n<p>[\/pcsh]<\/p>\n<p>&nbsp;<\/p>\n<p>Il manque cependant encore un fichier fondamental, le fichier functions.php dont le r\u00f4le est de lister et d\u00e9finir les fonctions appel\u00e9es dans les fichiers pr\u00e9c\u00e9dents, sans quoi, rien ne va marcher. Voyons voir cela dans la quatri\u00e8me partie de cet article.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le fichier index.php C&rsquo;est le fichier qui est utilis\u00e9 par d\u00e9faut comme page d&rsquo;accueil du site. Il va contenir le code pour afficher le contenu du site, notamment les articles. Nous ferons simple, mais il est possible de sp\u00e9cifier quels articles seront affich\u00e9s ou pas sur cette page. Le code de ce fichier se r\u00e9partit &hellip; <a href=\"https:\/\/lamartinieredesign.fr\/?page_id=712\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Cr\u00e9er un th\u00e8me complet &#8211; part 3<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":635,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"_links":{"self":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/712"}],"collection":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=712"}],"version-history":[{"count":8,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/712\/revisions"}],"predecessor-version":[{"id":754,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/712\/revisions\/754"}],"up":[{"embeddable":true,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/635"}],"wp:attachment":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}