{"id":655,"date":"2016-04-05T22:23:09","date_gmt":"2016-04-05T20:23:09","guid":{"rendered":"http:\/\/lamartinieredesign.fr\/?page_id=655"},"modified":"2017-04-06T13:26:49","modified_gmt":"2017-04-06T11:26:49","slug":"creer-un-theme-complet-part-1","status":"publish","type":"page","link":"https:\/\/lamartinieredesign.fr\/?page_id=655","title":{"rendered":"Cr\u00e9er un th\u00e8me complet &#8211; part 1"},"content":{"rendered":"<h4>Avantages et inconv\u00e9nients<\/h4>\n<p>Cr\u00e9er un th\u00e8me complet soi-m\u00eame est une t\u00e2che ardue pour un designer. Nous allons en d\u00e9couvrir les principes fondamentaux, mais pour obtenir un th\u00e8me parfaitement fonctionnel, il faut de bonnes connaissances en d\u00e9veloppement HTML, CSS, PHP et \u00e9ventuellement Javascript. Il est cependant possible de r\u00e9aliser un th\u00e8me simple et fonctionnel. Nous allons en d\u00e9tailler les \u00e9tapes.<\/p>\n<p>Ce que nous allons voir peut s&rsquo;adapter \u00e0 la cr\u00e9ation d&rsquo;un th\u00e8me \u00e0 l&rsquo;aide d&rsquo;un Starter Th\u00e8me, ce qui garantit un r\u00e9sultat plus performant.<\/p>\n<p>L&rsquo;inconv\u00e9nient est qu&rsquo;il s&rsquo;agit d&rsquo;un travail assez long. Il faut \u00e9galement tenir \u00e0 jour ce th\u00e8me afin d&rsquo;\u00e9viter les failles de s\u00e9curit\u00e9.<br \/>\n\u00c0 l&rsquo;inverse, le plaisir d&rsquo;avoir r\u00e9alis\u00e9 soi-m\u00eame son th\u00e8me est incomparable.<\/p>\n<h4>Organisation des fichiers d&rsquo;un th\u00e8me<\/h4>\n<p>Pour qu&rsquo;un th\u00e8me fonctionne il faut au minimum trois fichiers. Il est absolument n\u00e9cessaire de respecter le nom et l&rsquo;orthographe exacts de ces fichiers pour que tout se passe bien :<br \/>\n&#8211; <strong>style.css<\/strong> (obligatoire) sert \u00e0 la mise en forme du site et \u00e0 la reconnaissance du th\u00e8me par WP, par des styles CSS<br \/>\n&#8211; <strong>index.php<\/strong> (obligatoire \u00e9galement) permet l&rsquo;affichage par d\u00e9faut des pages du site. \u00c0 moins d&rsquo;un th\u00e8me OnePage, il est toujours compl\u00e9t\u00e9 par de nombreux autres fichiers PHP, sp\u00e9cialis\u00e9s dans l&rsquo;affichage des articles, archives, etc.<br \/>\n&#8211; <strong>functions.php<\/strong> (quasi obligatoire, il existe dans tous les th\u00e8mes) regroupe les fonctions PHP n\u00e9cessaires au fonctionnement du site, pour l&rsquo;affichage du contenu, par exemple les menus, les sidebars ou les images \u00e0 la une<br \/>\n&#8211; <strong>screenshot.png<\/strong> (facultatif, mais recommand\u00e9) est une image de 600&#215;450 pixels (le codex recommande 1200&#215;900 pixels pour les \u00e9crans haute r\u00e9solution) donnant \u00e0 voir \u00e0 quoi ressemble le th\u00e8me. Cette image apparait dans le Tableau de bord \u00e0 387&#215;290 pixels au moment du choix d&rsquo;un th\u00e8me.<\/p>\n<p>Les autres fichiers g\u00e9n\u00e9ralement pr\u00e9sents dans un th\u00e8me sont header.php, footer.php, sidebar.php, home.php (la page d&rsquo;accueil quand ce fichier existe), page.php (pour l&rsquo;affichage d&rsquo;une Page WP), single.php (pour l&rsquo;affichage du d\u00e9tail d&rsquo;un seul article), etc. Ces fichiers sont hi\u00e9rarchis\u00e9s de sorte que si l&rsquo;un d&rsquo;eux n&rsquo;est pas pr\u00e9sent, il est automatiquement remplac\u00e9 par un autre de niveau sup\u00e9rieur. Vous pouvez voir cette hi\u00e9rarchie dans ce sch\u00e9ma :<br \/>\n<a href=\"http:\/\/wordpress.bbxdesign.com\/wp-content\/uploads\/2014\/12\/hierarchie-theme-wordpress.jpg\" target=\"_blank\">http:\/\/wordpress.bbxdesign.com\/wp-content\/uploads\/2014\/12\/hierarchie-theme-wordpress.jpg<\/a><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-685\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2016\/04\/hierarchie-theme-wordpress.jpg\" alt=\"hierarchie-theme-wordpress\" width=\"1440\" height=\"900\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2016\/04\/hierarchie-theme-wordpress.jpg 1440w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2016\/04\/hierarchie-theme-wordpress-300x188.jpg 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2016\/04\/hierarchie-theme-wordpress-768x480.jpg 768w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2016\/04\/hierarchie-theme-wordpress-1024x640.jpg 1024w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><\/p>\n<p>Enfin, on peut rencontrer d&rsquo;autres fichiers dans un th\u00e8me, du code javascript ou autre. Il est tr\u00e8s instructif d&rsquo;ouvrir le dossier des th\u00e8mes que vous t\u00e9l\u00e9chargez pour en examiner le contenu.<\/p>\n<h4>Le fichier style.css<\/h4>\n<p>Ce fichier, obligatoire, doit commencer par un commentaire sur plusieurs lignes pour la d\u00e9claration du th\u00e8me. C&rsquo;est ce qui permettra \u00e0 WordPress de le reconnaitre et de l&rsquo;afficher dans le Tableau de bord.<\/p>\n<p>La seule information obligatoire de ce commentaire est le nom du th\u00e8me (Theme Name:), mais les autres informations sont souvent utiles (auteur, version, description, mots cl\u00e9s, etc.). Voyons ci-dessous un exemple de code correspondant au commentaire de d\u00e9claration du th\u00e8me au d\u00e9but du fichier style.css. Notez qu&rsquo;il ne faut pas mettre d&rsquo;espace avant les deux points de chaque cat\u00e9gorie d&rsquo;information :<\/p>\n<p>[pcsh lang=\u00a0\u00bbcss\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>\/*\r\nTheme Name: Engins de Chantiers\r\nAuthor: Gilles\r\nAuthor URI: http:\/\/monsiteweb.com\r\nDescription: Le plus beau des th\u00e8mes sp\u00e9cialement con\u00e7u pour les passionn\u00e9s d&#039;engins de chantier !\r\nVersion: 1.0\r\nTags: chantier, portfolio, tractopelle, jaune, 3 colonnes, responsive\u2026\r\nText Domain: chantier\r\n*\/<\/code><\/pre>\n<p>[\/pcsh]<\/p>\n<p>Le nom du th\u00e8me (Theme Name:) est libre. Faites simple, souvent un seul mot. Une description (Description:) concise aide \u00e0 comprendre les atouts du th\u00e8me. La version (Version:) est tr\u00e8s utile, pour suivre les mises \u00e0 jours n\u00e9cessaires. Des mots-cl\u00e9 (Tags:) aident \u00e0 trouver votre th\u00e8me lors d&rsquo;une recherche. Il vaut mieux indiquer les tags en anglais, surtout si vous souhaitez distribuer votre th\u00e8me. Enfin, le domaine (Text Domain:) sert \u00e0 la traduction et correspond au nom du dossier de votre th\u00e8me.<\/p>\n<p>\u00c9videmment, le fichier style.css sert \u00e9galement \u00e0 contenir les r\u00e8gles CSS de mise en forme de votre site. Il est recommand\u00e9 d&rsquo;y placer des commentaires pour chapitrer votre code et mieux vous y retrouver. Certains th\u00e8me contiennent m\u00eame un sommaire en commentaire, juste apr\u00e8s la d\u00e9claration du th\u00e8me. Voir \u00e0 ce propos le fichier style.css des th\u00e8mes fournis par d\u00e9faut par WordPress (twentyfifteen par exemple).<\/p>\n<h4>Passer d&rsquo;un fichier HTML \u00e0 un fichier PHP<\/h4>\n<p>WordPress utilise des fichiers PHP pour afficher le contenu du site. Une page HTML (index.html par exemple pour la page d&rsquo;accueil d&rsquo;un site statique) se compose de deux parties principales, <em>head<\/em> et <em>body<\/em>. Puis, dans <em>body<\/em> le contenu se r\u00e9partit en zones bien identifi\u00e9es, un conteneur global (<em>div #wrapper<\/em>), un <em>header<\/em> pour l&rsquo;en-t\u00eate de la page avec le nom du site et le logo, la <em>nav<\/em> pour le menu principal, souvent int\u00e9gr\u00e9 au <em>header<\/em>, puis une ou plusieurs sections de contenu, avec ou non une colonne lat\u00e9rale <em>sidebar<\/em>, et enfin un <em>footer<\/em> en pied de page.<\/p>\n<p>Ces zones se retrouvent dans WordPress r\u00e9parties en plusieurs fichiers qui seront ensuite assembl\u00e9s en PHP selon les besoins. Voir \u00e0 ce sujet, une introduction simple \u00e0 l&rsquo;\u00e9laboration des fichiers d&rsquo;un th\u00e8me :<br \/>\n<a href=\"http:\/\/www.wppourlesnuls.com\/notions-de-base-pour-creer-un-theme-wordpress\/\" target=\"_blank\">http:\/\/www.wppourlesnuls.com\/notions-de-base-pour-creer-un-theme-wordpress\/<\/a><\/p>\n<p>Prenons un fichier HTML de base :<\/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;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n\t&lt;head&gt;\r\n\t\t&lt;meta charset=&#34;utf-8&#34;&gt;\r\n\t\t&lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1&#34;&gt;\r\n\t\t&lt;title&gt;Titre du site&lt;\/title&gt;\r\n\t\t&lt;link rel=&#34;stylesheet&#34; href=&#34;style.css&#34;&gt;\r\n\t&lt;\/head&gt;\r\n\r\n\t&lt;body&gt;\r\n\t\t&lt;div id=&#34;wrapper&#34;&gt;\r\n\t\t\t&lt;header id=&#34;en-tete&#34;&gt;\r\n\t\t\t\t&lt;img src=&#34;images\/logo.png&#34; alt=&#34;logo&#34;&gt;\r\n\t\t\t\t&lt;h1&gt;Nom du site&lt;\/h1&gt;\r\n\t\t\t\t&lt;h2&gt;Slogan&lt;\/h2&gt;\r\n\t\t\t\t&lt;nav class=&#34;menu_principal&#34;&gt;\r\n\t\t\t\t\t&lt;!-- ici le menu en html --&gt;\r\n\t\t\t\t&lt;\/nav&gt;\r\n\t\t\t&lt;\/header&gt;\r\n\t\t\t\r\n\t\t\t&lt;section id=&#34;projets&#34;&gt;\r\n\t\t\t\t&lt;&lt;article class=&#34;vignette&#34;&gt;\r\n\t\t\t\t\t&lt;img src=&#34;images\/projet001.jpg&#34; alt=&#34;&#34;&gt;\r\n\t\t\t\t\t&lt;h3&gt;Titre de l&#039;aricle&lt;\/h3&gt;\r\n\t\t\t\t\t&lt;p class=&#34;extrait&#34;&gt;bla bla&lt;\/p&gt;\r\n\t\t\t\t&lt;\/article&gt;\r\n\t\t\t&lt;\/section&gt;\r\n\r\n\t\t\t&lt;aside id=&#34;en-plus&#34;&gt;\r\n\t\t\t&lt;\/aside&gt;\r\n\r\n\t\t\t&lt;footer id=&#34;pied-de-page&#34;&gt;\r\n\t\t\t\t&lt;p&gt;Copyright&lt;\/p&gt;\r\n\t\t\t\t&lt;nav class=&#34;reseaux_sociaux&#34;&gt;&lt;\/nav&gt;\r\n\t\t\t&lt;\/footer&gt;\r\n\t\t&lt;\/div&gt;\r\n\t&lt;\/body&gt;\r\n&lt;\/html&gt;<\/code><\/pre>\n<p>[\/pcsh]<\/p>\n<p>Il commence par le Doctype puis la balise <em>&lt;html&gt;<\/em> qui contient les deux balises de base <em>&lt;head&gt;<\/em> et <em>&lt;body&gt;<\/em>. La partie <em>&lt;head&gt;<\/em> comporte 4 lignes :<br \/>\n&#8211; la ligne 4 pour l&rsquo;encodage des caract\u00e8res<br \/>\n&#8211; la ligne 5 pour l&rsquo;affichage correct sur smartphone (utile mais pas suffisant pour rendre le site responsive). Pour en savoir plus, consulter ce lien :<br \/>\n<a href=\"http:\/\/www.alsacreations.com\/article\/lire\/1490-comprendre-le-viewport-dans-le-web-mobile.html\" target=\"_blank\">http:\/\/www.alsacreations.com\/article\/lire\/1490-comprendre-le-viewport-dans-le-web-mobile.html<\/a><br \/>\n&#8211; la ligne 6 pour le titre du site qui apparait dans l&rsquo;onglet de la fen\u00eatre du site et dans les moteurs de recherche<br \/>\n&#8211; la ligne 7 pour le lien vers le fichier CSS<\/p>\n<p>Le <em>&lt;body&gt;<\/em> comporte quatre parties :<br \/>\n&#8211; un en-t\u00eate <em>&lt;header&gt;<\/em> regroupant ici un logo, le titre du site et le sous-titre, param\u00e9trables dans WordPress et une <em>&lt;nav&gt;<\/em> pour le menu principal<br \/>\n&#8211; une <em>&lt;section&gt;<\/em> pour le contenu principal, ici des articles contenant une image, un titre et une l\u00e9gende de portfolio<br \/>\n&#8211; un <em>&lt;aside&gt;<\/em> pour des informations compl\u00e9mentaires, ou dans WordPress, pour l&rsquo;affichage des Widgets (archives, articles r\u00e9cents, tags, etc.)<br \/>\n&#8211; un <em>&lt;footer&gt;<\/em> pour le pied de page, avec par exemple un copyright et le menu r\u00e9seaux sociaux.<\/p>\n<p>Toutes ces zones comportent un identifiant <em>id<\/em> pour les grandes bo\u00eetes ou une classe <em>class<\/em> pour les autres et sont incluses dans une <em>&lt;div&gt;<\/em> globale avec un i<em>d #wrapper<\/em>. Bien entendu, cette configuration n&rsquo;est qu&rsquo;un exemple, et d&rsquo;autres configurations sont envisageables, selon vos besoins.<\/p>\n<p>Une grande partie du contenu est cod\u00e9 \u00ab\u00a0en dur\u00a0\u00bb, c&rsquo;est-\u00e0-dire que le contenu est indiqu\u00e9 directement dans le code, \u00e0 commencer par le titre par exemple. Il va falloir remplacer tout cela par du code PHP qui va appeler le contenu de la Base de Donn\u00e9es et rendre le site dynamique. Le code PHP correspondant \u00e0 ce fichier HTML va se r\u00e9partir dans plusieurs fichiers PHP li\u00e9s entre eux. C&rsquo;est ce que nous allons voir dans la deuxi\u00e8me partie de cet article.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avantages et inconv\u00e9nients Cr\u00e9er un th\u00e8me complet soi-m\u00eame est une t\u00e2che ardue pour un designer. Nous allons en d\u00e9couvrir les principes fondamentaux, mais pour obtenir un th\u00e8me parfaitement fonctionnel, il faut de bonnes connaissances en d\u00e9veloppement HTML, CSS, PHP et \u00e9ventuellement Javascript. Il est cependant possible de r\u00e9aliser un th\u00e8me simple et fonctionnel. Nous allons &hellip; <a href=\"https:\/\/lamartinieredesign.fr\/?page_id=655\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Cr\u00e9er un th\u00e8me complet &#8211; part 1<\/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":"page-templates\/full-width.php","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"_links":{"self":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/655"}],"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=655"}],"version-history":[{"count":25,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/655\/revisions"}],"predecessor-version":[{"id":934,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/655\/revisions\/934"}],"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=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}