{"id":667,"date":"2017-10-19T19:15:40","date_gmt":"2017-10-19T17:15:40","guid":{"rendered":"https:\/\/www.lagencebleu.com\/gaelcorna\/?p=667"},"modified":"2017-12-15T15:59:28","modified_gmt":"2017-12-15T14:59:28","slug":"theme-wordpress-ionic-1","status":"publish","type":"post","link":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1","title":{"rendered":"Un th\u00e8me WordPress en Ionic 1\/8"},"content":{"rendered":"<p><strong>Comme vous avez pu le constater, ce site ne se comporte pas vraiment comme un site internet habituel. Il est con\u00e7u gr\u00e2ce au framework Ionic que j&rsquo;utilise pour cr\u00e9er des applications mobiles hybrides.<\/strong><\/p>\n<h3>Pourquoi Ionic ?<\/h3>\n<p><img decoding=\"async\" class=\"alignleft size-full wp-image-586\" src=\"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-content\/uploads\/sites\/2\/2017\/10\/ionic.svg\" alt=\"\" \/>J&rsquo;ai choisi d&rsquo;utiliser cette technologie en lien avec WordPress pour sa simplicit\u00e9 d&rsquo;usage. Nul besoin de cr\u00e9er des animation CSS complexes, de d\u00e9finir un design avec une feuille de style \u00e0 rallonge, tout est d\u00e9j\u00e0 disponible dans le framework ! Il suffit de changer quelques couleurs et quelques tailles de caract\u00e8res, de rajouter des images et voila un template efficace sans ajouter de plugin \u00e0 WordPress.<\/p>\n<p>\u00c9videment, nous le verrons plus tard, tout n&rsquo;est pas compl\u00e8tement optimis\u00e9 et l&rsquo;int\u00e9gration de contenu dans les pages n&rsquo;est pas forc\u00e9ment simple surtout si ce contenu doit \u00eatre dynamique.<\/p>\n<p>Mais avant d&rsquo;en arriver l\u00e0, commen\u00e7ons par le commencement.<\/p>\n<h3>L&rsquo;environnement de d\u00e9veloppement<\/h3>\n<p>Pour commencer, ce projet \u00e0 \u00e9t\u00e9 construit dans Visual Studio Code. Cet IDE est l&rsquo;un des plus pratique en ce moment pour d\u00e9velopper en Ionic, il est bien s\u00fbr gratuit et existe pour Mac et PC. D&rsquo;autres solutions sont possibles bien s\u00fbr, chacune a ses points fort.<\/p>\n<p>J&rsquo;ai install\u00e9 des plugins sp\u00e9cifiques \u00e0 Ionic et \u00e0 Angular afin d&rsquo;avoir l&rsquo;auto-compl\u00e9tion et toutes les tips n\u00e9cessaires.<\/p>\n<p>Avant toutes choses, il vous faudra installer <a href=\"https:\/\/nodejs.org\/en\/\">NodeJs<\/a> si ce n&rsquo;est d\u00e9j\u00e0 fait ainsi que <a href=\"https:\/\/ionicframework.com\/\">Ionic<\/a> bien s\u00fbr. Vous trouverez toutes les instructions d&rsquo;installation sur leurs sites respectifs.<\/p>\n<p>&nbsp;<\/p>\n<p>Pour commencer, cr\u00e9ons un dossier dans l&rsquo;\u00e9diteur, ouvrons un terminal et lan\u00e7ons un<\/p>\n<p><code class=\"hljs bash\">ionic start MonThemeWordpress sidemenu<\/code><\/p>\n<p>Le projet se cr\u00e9\u00e9 automatiquement. On obtient alors le squelette de base de notre application avec les d\u00e9pendances n\u00e9cessaires.<\/p>\n<h3>Les sp\u00e9cificit\u00e9s du th\u00e8me<\/h3>\n<p>Pour cr\u00e9er un th\u00e8me WordPress il faut au minimum 3 fichiers :<\/p>\n<ul>\n<li>index.php<\/li>\n<li>style.css<\/li>\n<li>functions.php<\/li>\n<\/ul>\n<p>Vous pouvez les ajouter d\u00e8s maintenant dans le dossier \/src du projet.<\/p>\n<p>Dans le fichier <code class=\"hljs bash\">style.css<\/code>, il faudra ajouter l&rsquo;ent\u00eate en commentaire indiquant les d\u00e9tails du th\u00e8me. Aucun style ne sera d\u00e9clar\u00e9 ici, tout sera int\u00e9gr\u00e9 dans un fichier <code class=\"hljs bash\">main.css<\/code> \u00e0 la compilation finale.<\/p>\n<p>Dans le fichier <code class=\"hljs bash\">functions.php<\/code> j&rsquo;ai ajout\u00e9 la prise en charge des \u00ab\u00a0featured images\u00a0\u00bb qui seront affich\u00e9es en ent\u00eate des articles.<br \/>\n <code class=\"hljs php\">add_theme_support( &#039;post-thumbnails&#039;, array( &#039;post&#039; ) );<\/code><br \/>\n C&rsquo;est tout ce que contiendra ce fichier pour le moment.<\/p>\n<h3>La structure de notre th\u00e8me<\/h3>\n<p>Notre th\u00e8me de base est structur\u00e9 simplement et contient 4 pages :<\/p>\n<ul>\n<li>Accueil<\/li>\n<li>A propos<\/li>\n<li>Contact<\/li>\n<li>Blog<\/li>\n<\/ul>\n<p>Seul la page Blog a un contenu dynamique, les autres pages afficherons un contenu statique int\u00e9gr\u00e9 directement dans le code final. Il est bien s\u00fbr possible d&rsquo;afficher le contenu d&rsquo;une page WordPress. Nous le verrons dans un paragraphe d\u00e9di\u00e9.<\/p>\n<p>Pour le moment, je vous propose de cr\u00e9er les diff\u00e9rentes pages gr\u00e2ce \u00e0 la CLI. La page Home est d\u00e9j\u00e0 cr\u00e9\u00e9e par d\u00e9faut, et la page List ne nous int\u00e9resse pas donc on peut effacer le dossier la contenant. Il nous reste \u00e0 cr\u00e9er les autres pages. Dans le terminal, entrez les commandes :<\/p>\n<p><code class=\"hljs bash\">ionic g page about<\/code><\/p>\n<p><code class=\"hljs bash\">ionic g page contact<\/code><\/p>\n<p><code class=\"hljs bash\">ionic g page blog<\/code><\/p>\n<p>Voila, maintenant que nous avons nos quatre pages nous pouvons cr\u00e9er les components et le service qui se chargera des requ\u00eates REST. G\u00e9n\u00e9rons d\u00e9j\u00e0 ce provider :<\/p>\n<p><code class=\"hljs bash\">ionic g provider posts<\/code><\/p>\n<p>Pour assurer un code propre, j&rsquo;ai choisi de cr\u00e9er un provider de configuration qui contiendra les constantes n\u00e9cessaires au bon fonctionnement du th\u00e8me. G\u00e9n\u00e9rons donc ce provider Config :<\/p>\n<p><code class=\"hljs bash\">ionic g provider config<\/code><\/p>\n<p>Maintenant c&rsquo;est au tour des components. Pour commencer, il nous faut afficher la liste des posts dans la page blog. Ensuite il nous faudra afficher chaque article individuellement. G\u00e9n\u00e9rons donc le premier component qui affichera la liste des posts :<\/p>\n<p><code class=\"hljs bash\">ionic g component post-list<\/code><\/p>\n<p>La liste sera constitu\u00e9e de posts donc g\u00e9n\u00e9rons le component Post :<\/p>\n<p><code class=\"hljs bash\">ionic g component post<\/code><\/p>\n<p>Comme je l&rsquo;ai dit plus haut, nous allons afficher une image en ent\u00eate de chaque post donc nous allons cr\u00e9er un component pour cette image :<\/p>\n<p><code class=\"hljs bash\">ionic g component thumbnail<\/code><\/p>\n<p>Voila, tous les fichiers n\u00e9cessaires \u00e0 notre projet sont cr\u00e9\u00e9s, il nous reste maintenant \u00e0 \u00e9crire notre code pour remplir tout \u00e7a. Commen\u00e7ons d\u00e9j\u00e0 par modifier notre page d&rsquo;accueil afin de b\u00e9n\u00e9ficier du <em>lazy loading<\/em>.<\/p>\n<h3>La page Home<\/h3>\n<p>Par d\u00e9faut lors de la cr\u00e9ation d&rsquo;une appli <em>sidemenu<\/em>, tout le boillerplate g\u00e9n\u00e9r\u00e9 ne tient pas compte des capacit\u00e9s de lazy loading offerte par Ionic gr\u00e2ce au d\u00e9corateur @IonicPage. Nous allons donc configurer cette page et les fichiers g\u00e9n\u00e9raux de l&rsquo;application pour que tout se passe de mani\u00e8re fluide.<\/p>\n<p>Dans le fichier <em>home.ts<\/em> nous allons ajouter les imports n\u00e9cessaires c&rsquo;est \u00e0 dire celui du module IonicPage : <\/p>\n<p>\n<code class=\"hljs typescript\">import { IonicPage, NavController } from &#039;ionic-angular&#039;;<\/code><\/p>\n<p>Nous aurons aussi probablement besoin des donn\u00e9es de configurations donc nous importons le component correspondant : <\/p>\n<p><code class=\"hljs typescript\">import { ConfigProvider } from &#039;..\/..\/providers\/config\/config&#039;;<\/code><\/p>\n<p>Maintenant que tout est disponible, il suffit de d\u00e9clarer notre page avant la cr\u00e9ation du component comme ceci : <\/p>\n<p><code class=\"hljs typescript\">@IonicPage({<br \/>\n&nbsp;&nbsp;name: &#039;home&#039;,<br \/>\n&nbsp;&nbsp;segment: &#039;home&#039;,<br \/>\n&nbsp;&nbsp;priority: &#039;high&#039;<br \/>\n})<br \/>\n@component...<br \/>\n<\/code><\/p>\n<p>La propri\u00e9t\u00e9 <em>name<\/em> permettra de nommer cette page alors que la valeur de <em>segment<\/em> apparaitra dans l&rsquo;URL de la page ce qui rendra possible le deep linking.<\/p>\n<p>Il vous reste \u00e0 mettre le code que vous souhaitez dans cette page et dans sont template associ\u00e9 <em>home.html<\/em><\/p>\n<\/p>\n<p>Modifions le module de l&rsquo;application pour tenir compte du lazy loading. Ouvrons donc <em>app.modules.ts<\/em> et faisons les modifications suivantes :<br \/>\n<code class=\"hljs typescript\">import { BrowserModule } from &#039;@angular\/platform-browser&#039;;<br \/>\nimport { ErrorHandler, NgModule } from &#039;@angular\/core&#039;;<br \/>\nimport { IonicApp, IonicErrorHandler, IonicModule } from &#039;ionic-angular&#039;;<br \/>\nimport { HttpModule } from &#039;@angular\/http&#039;;<br \/>\nimport { MyApp } from &#039;.\/app.component&#039;;<br \/>\nimport { PostsProvider } from &#039;..\/providers\/posts\/posts&#039;;<br \/>\nimport { ConfigProvider} from &#039;..\/providers\/config\/config&#039;;<br \/>\n@NgModule({<br \/>\n&nbsp;&nbsp;declarations: [MyApp],<br \/>\n&nbsp;&nbsp;imports: [<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;BrowserModule,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;HttpModule,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;IonicModule.forRoot(MyApp, { locationStrategy: &quot;path&quot; }),<br \/>\n&nbsp;&nbsp;],<br \/>\n&nbsp;&nbsp;bootstrap: [IonicApp],<br \/>\n&nbsp;&nbsp;entryComponents: [MyApp],<br \/>\n&nbsp;&nbsp;providers: [<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;{provide: ErrorHandler, useClass: IonicErrorHandler},<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;PostsProvider,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;ConfigProvider,<br \/>\n&nbsp;&nbsp;]\n})<br \/>\nexport class AppModule {}<br \/>\n<\/code><\/p>\n<p>Comme vous le voyez, la page Home ne fait plus partie des imports, comme aucune autre page d&rsquo;ailleurs. Les splashscreen et statusbar ont aussi disparues puisqu&rsquo;ils sont inutiles dans notre cas<\/p>\n<p>Ce petit bout de code ins\u00e9r\u00e9 comme param\u00e8tre du IonicModule, permettra la gestion du deep linking et l&rsquo;affichage de la bonne URL dans le navigateur :<\/p>\n<p>\n<code class=\"hljs typescript\">locationStrategy: &quot;path&quot;<\/code><\/p>\n<p>Attaquons maintenant le fichier d\u00e9finissant l&rsquo;application <em>app.component.ts<\/em> qui va lui aussi changer : <\/p>\n<p><code class=\"hljs typescript\">import { Component, ViewChild } from &#039;@angular\/core&#039;;<br \/>\nimport { Nav, Platform } from &#039;ionic-angular&#039;;<br \/>\n@Component({<br \/>\n&nbsp;&nbsp;templateUrl: &#039;app.html&#039;<br \/>\n})<br \/>\nexport class MyApp {<br \/>\n&nbsp;&nbsp;@ViewChild(Nav) nav: Nav;<br \/>\n&nbsp;&nbsp;rootPage: string = &#039;home&#039;;<br \/>\n&nbsp;&nbsp;pages: Array&lt;{title: string, component: any}&gt;;<br \/>\n&nbsp;&nbsp;constructor( public platform: Platform ) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;this.initializeApp();<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;this.pages = [<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ title: &#039;Accueil&#039;, component: &#039;home&#039; },<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ title: &#039;Blog&#039;, component: &#039;blog&#039; },<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ title: &#039;A propos&#039;, component: &#039;about&#039; },<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ title: &#039;Contact&#039;, component: &#039;contact&#039; }<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;];<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;initializeApp() {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;this.platform.ready().then(() =&gt; {});<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;openPage(page) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;this.nav.setRoot(page.component);<br \/>\n&nbsp;&nbsp;}<br \/>\n}<br \/>\n<\/code><\/p>\n<p>L\u00e0 aussi, on commence par les imports et on enl\u00e8ve comme pr\u00e9c\u00e9demment les splashscreen et statusbar ainsi que Homepage et ListPage.<\/p>\n<p>Apr\u00e8s les imports, on peut cr\u00e9er notre component puis d\u00e9finir sa classe. On initialise la variables <em>rootPage<\/em> \u00e0 <em>&lsquo;home&rsquo;<\/em>. Attention il s&rsquo;agit bien d&rsquo;une chaine et non plus du component qui sera pass\u00e9 en param\u00e8tre.<\/p>\n<p>dans le constructeur de la classe, on injecte l&rsquo;objet <em>Platform<\/em> dont on va se servir dans la m\u00e9thode d&rsquo;initialisation <em>initializeApp()<\/em> que l&rsquo;on va invoquer en tout premier. Enlevons aussi les r\u00e9f\u00e9rences \u00e0 Splashscreen et Statusbar. On cr\u00e9e ensuite le tableau des pages qui va guider notre navigation.<\/p>\n<p>Viennent ensuite les deux m\u00e9thodes de cette classe, celle d&rsquo;initialisation <em>initializeApp()<\/em> et celle d&rsquo;ouverture des pages <em>openPages()<\/em><\/p>\n<p>Voila pour cette premi\u00e8re \u00e9tape de conception, rendez-vous au prochain article pour cr\u00e9er notre premier provider.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comme vous avez pu le constater, ce site ne se comporte pas vraiment comme un site internet habituel.Il est con\u00e7u gr\u00e2ce au framework Ionic que j&rsquo;utilise pour cr\u00e9er des applications mobiles hybrides.<\/p>\n","protected":false},"author":3,"featured_media":587,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Un th\u00e8me Wordpress en Ionic 1\/8 - Ga\u00ebl Corna<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Un th\u00e8me Wordpress en Ionic 1\/8 - Ga\u00ebl Corna\" \/>\n<meta property=\"og:description\" content=\"Comme vous avez pu le constater, ce site ne se comporte pas vraiment comme un site internet habituel.Il est con\u00e7u gr\u00e2ce au framework Ionic que j&#039;utilise pour cr\u00e9er des applications mobiles hybrides.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1\" \/>\n<meta property=\"og:site_name\" content=\"Ga\u00ebl Corna\" \/>\n<meta property=\"article:published_time\" content=\"2017-10-19T17:15:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-15T14:59:28+00:00\" \/>\n<meta name=\"author\" content=\"gael\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"gael\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1\",\"url\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1\",\"name\":\"Un th\u00e8me Wordpress en Ionic 1\/8 - Ga\u00ebl Corna\",\"isPartOf\":{\"@id\":\"http:\/\/www.gaelcorna.eu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-content\/uploads\/sites\/2\/2017\/10\/screens.svg\",\"datePublished\":\"2017-10-19T17:15:40+00:00\",\"dateModified\":\"2017-12-15T14:59:28+00:00\",\"author\":{\"@id\":\"http:\/\/www.gaelcorna.eu\/#\/schema\/person\/5b10e96e843831cd679c134b8f6263e0\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#primaryimage\",\"url\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-content\/uploads\/sites\/2\/2017\/10\/screens.svg\",\"contentUrl\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-content\/uploads\/sites\/2\/2017\/10\/screens.svg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\/\/www.gaelcorna.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Un th\u00e8me WordPress en Ionic 1\/8\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.gaelcorna.eu\/#website\",\"url\":\"http:\/\/www.gaelcorna.eu\/\",\"name\":\"Ga\u00ebl Corna\",\"description\":\"D\u00e9veloppeur WEB. Aussi\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.gaelcorna.eu\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.gaelcorna.eu\/#\/schema\/person\/5b10e96e843831cd679c134b8f6263e0\",\"name\":\"gael\",\"url\":\"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Un th\u00e8me Wordpress en Ionic 1\/8 - Ga\u00ebl Corna","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1","og_locale":"fr_FR","og_type":"article","og_title":"Un th\u00e8me Wordpress en Ionic 1\/8 - Ga\u00ebl Corna","og_description":"Comme vous avez pu le constater, ce site ne se comporte pas vraiment comme un site internet habituel.Il est con\u00e7u gr\u00e2ce au framework Ionic que j'utilise pour cr\u00e9er des applications mobiles hybrides.","og_url":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1","og_site_name":"Ga\u00ebl Corna","article_published_time":"2017-10-19T17:15:40+00:00","article_modified_time":"2017-12-15T14:59:28+00:00","author":"gael","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"gael","Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1","url":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1","name":"Un th\u00e8me Wordpress en Ionic 1\/8 - Ga\u00ebl Corna","isPartOf":{"@id":"http:\/\/www.gaelcorna.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#primaryimage"},"image":{"@id":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#primaryimage"},"thumbnailUrl":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-content\/uploads\/sites\/2\/2017\/10\/screens.svg","datePublished":"2017-10-19T17:15:40+00:00","dateModified":"2017-12-15T14:59:28+00:00","author":{"@id":"http:\/\/www.gaelcorna.eu\/#\/schema\/person\/5b10e96e843831cd679c134b8f6263e0"},"breadcrumb":{"@id":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#primaryimage","url":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-content\/uploads\/sites\/2\/2017\/10\/screens.svg","contentUrl":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-content\/uploads\/sites\/2\/2017\/10\/screens.svg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/667\/theme-wordpress-ionic-1#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.gaelcorna.eu\/"},{"@type":"ListItem","position":2,"name":"Un th\u00e8me WordPress en Ionic 1\/8"}]},{"@type":"WebSite","@id":"http:\/\/www.gaelcorna.eu\/#website","url":"http:\/\/www.gaelcorna.eu\/","name":"Ga\u00ebl Corna","description":"D\u00e9veloppeur WEB. Aussi","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.gaelcorna.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"http:\/\/www.gaelcorna.eu\/#\/schema\/person\/5b10e96e843831cd679c134b8f6263e0","name":"gael","url":"https:\/\/www.lagencebleu.com\/gaelcorna\/single\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/posts\/667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/comments?post=667"}],"version-history":[{"count":41,"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/posts\/667\/revisions"}],"predecessor-version":[{"id":758,"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/posts\/667\/revisions\/758"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/media\/587"}],"wp:attachment":[{"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/media?parent=667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/categories?post=667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lagencebleu.com\/gaelcorna\/wp-json\/wp\/v2\/tags?post=667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}