{"id":5051,"date":"2018-03-04T19:47:30","date_gmt":"2018-03-04T17:47:30","guid":{"rendered":"https:\/\/www.tomislavstankovic.com\/blog\/?p=5051"},"modified":"2019-01-05T19:50:27","modified_gmt":"2019-01-05T17:50:27","slug":"ionic3-wordpress-rest-api-blog-postovi","status":"publish","type":"post","link":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/","title":{"rendered":"Ionic 3 i WordPress REST API &#8211; prikaz blog postova"},"content":{"rendered":"<p>U ovom \u0107u blog postu napraviti primjer <em>Ionic 3<\/em> aplikacije koja \u0107e prikazivati popis blog postova sa ovog bloga koriste\u0107i <em><a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" rel=\"noopener\" target=\"_blank\"><strong>WordPress REST API<\/strong><\/a><\/em>.<\/p>\n<p>Na po\u010detnoj stranici biti \u0107e popis blog postova (naziv, vrijeme objave, <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/categories\/\" rel=\"noopener\" target=\"_blank\">kategorije<\/a>, kratak sadr\u017eaj i <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/media\/\" rel=\"noopener\" target=\"_blank\">slika<\/a>) te \u0107e se mo\u0107i pristupiti svakom blog postu pojedina\u010dno. <\/p>\n<h2>Kreiranje aplikacije<\/h2>\n<p>Za po\u010detak <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic-3-framework-uvod\/\" rel=\"noopener\" target=\"_blank\">kreiram novu <em>Ionic<\/em> aplikaciju<\/a> i odmah <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/android-platforma-ionic-aplikacija\/\" rel=\"noopener\" target=\"_blank\">dodajem <em>Android<\/em> platformu<\/a> kako bi kasnije mogao aplikaciju pokrenuti na <em>Android<\/em> mobilnom ure\u0111aju.<\/p>\n<pre class=\"lang:sh decode:true \" >$ ionic start Ionic3WordPressBlog blank\r\n$ cd Ionic3WordPressBlog \r\n$ ionic cordova platform add android<\/pre>\n<h2>API provider<\/h2>\n<p>Sada \u0107u kreirati <em>API Provider<\/em> koji \u0107e slu\u017eiti kao centralno mjesto svih <em>WordPress<\/em> URL-ova koje \u0107u koristiti unutar <em>Ionic<\/em> aplikacije. <\/p>\n<pre class=\"lang:sh decode:true \" >$ ionic g provider ApiProvider<\/pre>\n<p>Na <em>URL-u<\/em> <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\" rel=\"noopener\" target=\"_blank\">https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts<\/a> dohva\u0107am popis blog postova. Unutar ovog API-ja tako\u0111er imam dva vrlo bitna podatka, a to su  <span class=\"lang:js decode:true  crayon-inline\">featured_media<\/span> i <span class=\"lang:js decode:true  crayon-inline\">categories<\/span>  koji \u0107e mi poslu\u017eiti za dohva\u0107anje slike i kategorije svakog blog posta. <\/p>\n<p><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/ionic-wordpress-rest-api-blog-postovi.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/ionic-wordpress-rest-api-blog-postovi.gif\" alt=\"Ionic 3 i WordPress REST API - prikaz blog postova\" width=\"1377\" height=\"837\" class=\"aligncenter size-full wp-image-7079\" \/><\/a><\/p>\n<pre class=\"lang:js mark:3,8,14-17,19-22,24-27 decode:true \" title=\"api.ts\" >import { HttpClient } from '@angular\/common\/http';\r\nimport { Injectable } from '@angular\/core';\r\nimport 'rxjs\/add\/operator\/map';\r\n\r\n@Injectable()\r\nexport class ApiProvider {\r\n\r\n  osnovniUrl: string = \"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/\";\r\n\r\n  constructor(public _http: HttpClient) {\r\n    console.log('Hello ApiProvider Provider');\r\n  }\r\n\r\n  blogPostovi(){\r\n    return this._http.get(this.osnovniUrl + 'posts')\r\n    .map(data =&gt; Object.keys(data).map(k =&gt; data[k]))\r\n  }\r\n\r\n  slikaBlogPosta(a:any){\r\n    return this._http.get(this.osnovniUrl + 'media' + a)\r\n    .map(data =&gt; Object.keys(data).map(k =&gt; data[k]))\r\n  }\r\n\r\n  kategorijaBlogPosta(){\r\n    return this._http.get(this.osnovniUrl + 'categories\/?per_page=100')\r\n    .map(data =&gt; Object.keys(data).map(k =&gt; data[k]))\r\n  }\r\n\r\n}<\/pre>\n<h2>Prikaz blog postova<\/h2>\n<p>Aplikacija \u0107e na kraju izgledati ovako:<\/p>\n<p><a href=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/ionic-wordpress-rest-api-blog-postovi-1.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/ionic-wordpress-rest-api-blog-postovi-1.gif\" alt=\"Ionic 3 i WordPress REST API \u2013 prikaz blog postova\" width=\"392\" height=\"652\" class=\"aligncenter size-full wp-image-7086\" \/><\/a><\/p>\n<p>Kao \u0161to se mo\u017ee vidjeti na po\u010detnom ekranu nalazi se popis zadnjih 10 blog postova. Svaki blog post ima naslov, sliku, kratak sadr\u017eaj i vrijeme proteklo od objave. Nekoliko preduvjeta je bilo potrebno zadovoljiti kako bi se sve to prikazalo na taj na\u010din. <\/p>\n<p>Struktura po\u010detne stranice izgleda ovako i ovdje je posebno zanimljiva funkcija  <span class=\"lang:js decode:true  crayon-inline\">prikaziJedanBlogPost()<\/span>  pomo\u0107u koje proslje\u0111ujem potrebne podatke na stranicu za prikaz pojedina\u010dnog blog posta.<\/p>\n<pre class=\"lang:xhtml decode:true \" title=\"home.html\" >&lt;ion-header&gt;\r\n  &lt;ion-navbar&gt;\r\n    &lt;ion-title&gt;\r\n      Ionic3WordPress\r\n    &lt;\/ion-title&gt;\r\n  &lt;\/ion-navbar&gt;\r\n&lt;\/ion-header&gt;\r\n\r\n&lt;ion-content&gt;\r\n \r\n  &lt;ion-card *ngFor=\"let post of jedanBlogPost; let i = index\" tappable&gt;\r\n    &lt;div *ngFor=\"let slika of jednaSlika; let i = index\" (click)=\"prikaziJedanBlogPost({id:post.id, naslov:post.naslov, sadrzaj: post.sadrzaj, urlslike: slika.putanjaSlike, index: i})\"&gt;\r\n        &lt;div *ngIf=\"post.id == slika.idBlogPosta\"&gt;\r\n         &lt;img [src]=\"slika.putanjaSlike\"&gt;\r\n         &lt;span class=\"vrijeme\"&gt;&lt;ion-icon name=\"time\"&gt;&lt;\/ion-icon&gt; {{ post.vrijeme }}&lt;\/span&gt;\r\n         &lt;span class=\"kategorija\"&gt;&lt;ion-icon name=\"ios-bookmark-outline\"&gt;&lt;\/ion-icon&gt; {{post.kategorije | KategorijaPipe:kategorije}}&lt;\/span&gt;\r\n        &lt;\/div&gt;\r\n      &lt;\/div&gt;\r\n      &lt;ion-card-content (click)=\"prikaziJedanBlogPost({id:post.id, naslov:post.naslov, sadrzaj: post.sadrzaj, urlslike: slika.putanjaSlike, index: i})\"&gt;\r\n          &lt;ion-card-title [innerHTML]=\"post.naslov\"&gt;\r\n          &lt;\/ion-card-title&gt;\r\n          &lt;div [innerHTML]=\"post.uvod\"&gt;&lt;\/div&gt;\r\n        &lt;\/ion-card-content&gt;\r\n&lt;\/ion-card&gt;\r\n\r\n&lt;\/ion-content&gt;<\/pre>\n<p>Jo\u0161 jedna zanimljiva stvar u <strong>home.html<\/strong> je <span class=\"lang:js decode:true  crayon-inline\">KategorijaPipe<\/span> koja slu\u017ei za dohva\u0107anje naziva kategorije na osnovu ID-a. <\/p>\n<pre class=\"lang:sh decode:true\">$ ionic generate pipe KategorijaPipe<\/pre>\n<pre class=\"lang:js decode:true   \" title=\"kategorija.ts\" >import { Pipe, PipeTransform } from '@angular\/core';\r\n\r\n@Pipe({\r\n  name: 'KategorijaPipe',\r\n})\r\nexport class KategorijaPipe {\r\n\r\n  transform(value, args) {\r\n    let output = '';\r\n    value.forEach(function(number){\r\n      output = output + ' ' + args[number]\r\n    })\r\n    return output;\r\n  }\r\n}<\/pre>\n<p>Naravno, potrebno je jo\u0161 o svemu tome obavijestiti <strong>app.module.ts<\/strong><\/p>\n<pre class=\"lang:js mark:11,12,18,23 decode:true\" title=\"app.module.ts\" >import { BrowserModule } from '@angular\/platform-browser';\r\nimport { ErrorHandler, NgModule } from '@angular\/core';\r\nimport { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';\r\nimport { SplashScreen } from '@ionic-native\/splash-screen';\r\nimport { StatusBar } from '@ionic-native\/status-bar';\r\n\r\nimport { MyApp } from '.\/app.component';\r\nimport { HomePage } from '..\/pages\/home\/home';\r\nimport { ApiProvider } from '..\/providers\/api\/api';\r\n\r\nimport { HttpClientModule } from '@angular\/common\/http'; \r\nimport { KategorijaPipe } from '..\/pipes\/kategorija\/kategorija';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    MyApp,\r\n    HomePage,\r\n    KategorijaPipe\r\n  ],\r\n  imports: [\r\n    BrowserModule,\r\n    IonicModule.forRoot(MyApp),\r\n    HttpClientModule\r\n  ],\r\n  bootstrap: [IonicApp],\r\n  entryComponents: [\r\n    MyApp,\r\n    HomePage\r\n  ],\r\n  providers: [\r\n    StatusBar,\r\n    SplashScreen,\r\n    {provide: ErrorHandler, useClass: IonicErrorHandler},\r\n    ApiProvider\r\n  ]\r\n})\r\nexport class AppModule {}<\/pre>\n<p>Uz ne\u0161to malo <em>CSS-a<\/em><\/p>\n<pre class=\"lang:css decode:true \" title=\"home.scss\" >page-home {\r\n\r\n    .vrijeme {\r\n        position: relative;\r\n        color: #fff;\r\n        background-color: #3F9FCF;\r\n        padding: 1px;\r\n    }\r\n\r\n    .toolbar-background {\r\n        background-color: #3F9FCF;\r\n    }\r\n\r\n    .toolbar-title {\r\n        color: #fff;\r\n    }\r\n\r\n    .kategorija {\r\n        position: absolute;\r\n        right: 10px;\r\n        background-color: #3F9FCF;\r\n        color: #fff;\r\n        padding: 1px;\r\n    }\r\n\r\n}<\/pre>\n<p>Kao \u0161to se mo\u017ee vidjeti u <strong>home.ts<\/strong> za prikaz vremena u \u017eeljenom obliku koristio sam <em><strong><a href=\"https:\/\/momentjs.com\/\" rel=\"noopener\" target=\"_blank\">Moment.js<\/a><\/strong><\/em><\/p>\n<p>Poja\u0161njenje funkcija:<\/p>\n<ul>\n<li><span class=\"lang:js decode:true crayon-inline\">prikazBlogPostova()<\/span>  &#8211; dohva\u0107a popis blog postova i kreira niz (<em>array<\/em>) <span class=\"lang:js decode:true crayon-inline\">jedanBlogPost<\/span><\/li>\n<li><span class=\"lang:js decode:true crayon-inline\">dohvatiUrlSlike()<\/span> &#8211; dohva\u0107a <em>URL<\/em> slike pojedina\u010dnog blog posta na osnovu parametra <span class=\"lang:js decode:true crayon-inline\">idslike: res[i].featured_media<\/span> iz gornje funkcije<\/li>\n<li><span class=\"lang:js decode:true crayon-inline\">ucitajKategorije()<\/span> &#8211; dohva\u0107a kategorije za blog post<\/li>\n<\/ul>\n<pre class=\"lang:js mark:5 decode:true   \" title=\"home.ts\" >import { Component } from '@angular\/core';\r\nimport { NavController } from 'ionic-angular';\r\nimport { ApiProvider } from '.\/..\/..\/providers\/api\/api';\r\n\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n  selector: 'page-home',\r\n  templateUrl: 'home.html',\r\n  providers: [ApiProvider]\r\n})\r\nexport class HomePage {\r\n\r\n  jedanBlogPost: Array&lt;Object&gt;;\r\n  jednaSlika: Array&lt;Object&gt;;\r\n  putanjaSlike: any;\r\n  kategorije: any;\r\n\r\n  constructor(public _navCtrl: NavController,\r\n              public _api: ApiProvider) {\r\n  }\r\n\r\n  ionViewDidLoad(){\r\n    moment.locale('hr');\r\n    this.prikazBlogPostova();\r\n    this.ucitajKategorije();\r\n  }\r\n\r\n  prikazBlogPostova(){\r\n    this.jedanBlogPost = [];\r\n    this.jednaSlika = [];\r\n    this._api.blogPostovi().subscribe(res =&gt; {\r\n      for(var i = 0; i &lt; res.length; i++) {\r\n        \/\/Funkcija koja dohva\u0107a sliku - po\u010detak\r\n        this.dohvatiUrlSlike(res[i].featured_media);\r\n        \/\/Funkcija koja dohva\u0107a sliku - kraj\r\n        this.jedanBlogPost.push({id: res[i].id,\r\n                             naslov: res[i].title.rendered,\r\n                             uvod: res[i].excerpt.rendered,\r\n                             sadrzaj: res[i].content.rendered,\r\n                             kategorije: res[i].categories,\r\n                             vrijeme: moment.utc(res[i].modified_gmt).fromNow(),\r\n                             idslike: res[i].featured_media}); \r\n       }\r\n\r\n    });\r\n  }\r\n\r\n  dohvatiUrlSlike(a){\r\n    this.putanjaSlike = {};\r\n    this._api.slikaBlogPosta(a).subscribe(res =&gt; {\r\n      this.jednaSlika.push({\r\n               idSlike: res[0],\r\n               idBlogPosta: res[22],\r\n               putanjaSlike: res[23]});\r\n      }); \r\n  }\r\n\r\n  ucitajKategorije(){\r\n    let categoryArray = [];\r\n    this._api.kategorijaBlogPosta().subscribe(res =&gt; {\r\n      res.forEach(function(item){\r\n        categoryArray[item.id] = item.name;\r\n      })\r\n      this.kategorije = categoryArray;\r\n    }); \r\n  } \r\n\r\n  prikaziJedanBlogPost(a){\r\n    this._navCtrl.push('JedanBlogPostPage', a);\r\n  }\r\n\r\n}<\/pre>\n<p>Klikom na naslov ili sliku blog posta otvara se jedan blog post. Stranica jednog blog posta <a href=\"https:\/\/ionicframework.com\/docs\/cli\/generate\/\" rel=\"noopener\" target=\"_blank\">kreirana je sljede\u0107om naredbom<\/a><\/p>\n<pre class=\"lang:sh decode:true     \" >$ ionic generate page JedanBlogPost<\/pre>\n<p>Dok je struktura ovakva<\/p>\n<pre class=\"lang:xhtml decode:true     \" title=\"jedan-blog-post.html\" >&lt;ion-header&gt;\r\n  &lt;ion-navbar color=\"secondary\"&gt;\r\n    &lt;ion-title [innerHTML]=\"naslov\"&gt;&lt;\/ion-title&gt;\r\n  &lt;\/ion-navbar&gt;\r\n&lt;\/ion-header&gt;\r\n\r\n&lt;ion-content&gt;\r\n    &lt;img [src]=\"slika\"&gt;\r\n  &lt;ion-card&gt;\r\n    &lt;ion-card-content&gt;\r\n        &lt;div [innerHTML]=\"sadrzaj\"&gt;&lt;\/div&gt;\r\n    &lt;\/ion-card-content&gt;\r\n  &lt;\/ion-card&gt;\r\n&lt;\/ion-content&gt;<\/pre>\n<p>Funkcionalnost stranice za prikaz jednog blog posta ne radi ni\u0161ta osim dohva\u0107anja proslije\u0111enih podataka s prethodne stranice s popisom svih blog postova pomo\u0107u objekta <a href=\"https:\/\/ionicframework.com\/docs\/api\/navigation\/NavParams\/\" rel=\"noopener\" target=\"_blank\">NavParams<\/a>.<\/p>\n<pre class=\"lang:js decode:true     \" title=\"jedan-blog-post.ts\" >import { Component } from '@angular\/core';\r\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\r\n\r\n@IonicPage()\r\n@Component({\r\n  selector: 'page-jedan-blog-post',\r\n  templateUrl: 'jedan-blog-post.html'\r\n})\r\nexport class JedanBlogPostPage {\r\n\r\n  naslov:any;\r\n  sadrzaj:any;\r\n  slika:any;\r\n\r\n  constructor(public _navCtrl: NavController, \r\n              public _navParams: NavParams) {\r\n  }\r\n\r\n  ionViewWillEnter() {\r\n    this.naslov = this._navParams.data.naslov;\r\n    this.sadrzaj = this._navParams.data.sadrzaj;\r\n    this.slika = this._navParams.data.urlslike;\r\n  }\r\n\r\n}<\/pre>\n<h2>Zaklju\u010dak<\/h2>\n<p>Struktura projekta prema <strong>package.json<\/strong> izgleda ovako<\/p>\n<pre class=\"lang:default decode:true \" title=\"pakage.json\" >{\r\n  \"name\": \"Ionic3WordPressBlog\",\r\n  \"version\": \"0.0.1\",\r\n  \"author\": \"Tomislav Stankovi\u0107\",\r\n  \"homepage\": \"https:\/\/www.tomislavstankovic.com\/\",\r\n  \"private\": true,\r\n  \"scripts\": {\r\n    \"clean\": \"ionic-app-scripts clean\",\r\n    \"build\": \"ionic-app-scripts build\",\r\n    \"lint\": \"ionic-app-scripts lint\",\r\n    \"ionic:build\": \"ionic-app-scripts build\",\r\n    \"ionic:serve\": \"ionic-app-scripts serve\"\r\n  },\r\n  \"dependencies\": {\r\n    \"@angular\/common\": \"5.0.3\",\r\n    \"@angular\/compiler\": \"5.0.3\",\r\n    \"@angular\/compiler-cli\": \"5.0.3\",\r\n    \"@angular\/core\": \"5.0.3\",\r\n    \"@angular\/forms\": \"5.0.3\",\r\n    \"@angular\/http\": \"5.0.3\",\r\n    \"@angular\/platform-browser\": \"5.0.3\",\r\n    \"@angular\/platform-browser-dynamic\": \"5.0.3\",\r\n    \"@ionic-native\/core\": \"4.4.0\",\r\n    \"@ionic-native\/splash-screen\": \"4.4.0\",\r\n    \"@ionic-native\/status-bar\": \"4.4.0\",\r\n    \"@ionic\/storage\": \"2.1.3\",\r\n    \"ionic-angular\": \"3.9.2\",\r\n    \"ionicons\": \"3.0.0\",\r\n    \"moment\": \"^2.21.0\",\r\n    \"rxjs\": \"5.5.2\",\r\n    \"sw-toolbox\": \"3.6.0\",\r\n    \"zone.js\": \"0.8.18\"\r\n  },\r\n  \"devDependencies\": {\r\n    \"@ionic\/app-scripts\": \"3.1.8\",\r\n    \"typescript\": \"2.4.2\"\r\n  },\r\n  \"description\": \"Ionic3WordPressBlog\"\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>U ovom \u0107u blog postu napraviti primjer Ionic 3 aplikacije koja \u0107e prikazivati popis blog postova sa ovog bloga koriste\u0107i WordPress REST API. Na po\u010detnoj stranici biti \u0107e popis blog postova (naziv, vrijeme objave, kategorije, kratak sadr\u017eaj i slika) te \u0107e se mo\u0107i pristupiti svakom blog postu pojedina\u010dno. Kreiranje aplikacije Za po\u010detak kreiram novu Ionic &hellip; <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/\" class=\"more-link\">Nastavi \u010ditati <span class=\"screen-reader-text\">Ionic 3 i WordPress REST API &#8211; prikaz blog postova<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":7100,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[564,351],"tags":[352,400,394,238],"class_list":["post-5051","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-razvoj","tag-ionic","tag-ionic-3","tag-rest-api","tag-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ionic 3 i WordPress REST API - prikaz blog postova - Tomislav Stankovi\u0107<\/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.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/\" \/>\n<meta property=\"og:locale\" content=\"hr_HR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ionic 3 i WordPress REST API - prikaz blog postova - Tomislav Stankovi\u0107\" \/>\n<meta property=\"og:description\" content=\"U ovom \u0107u blog postu napraviti primjer Ionic 3 aplikacije koja \u0107e prikazivati popis blog postova sa ovog bloga koriste\u0107i WordPress REST API. Na po\u010detnoj stranici biti \u0107e popis blog postova (naziv, vrijeme objave, kategorije, kratak sadr\u017eaj i slika) te \u0107e se mo\u0107i pristupiti svakom blog postu pojedina\u010dno. Kreiranje aplikacije Za po\u010detak kreiram novu Ionic &hellip; Nastavi \u010ditati Ionic 3 i WordPress REST API &#8211; prikaz blog postova\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/\" \/>\n<meta property=\"og:site_name\" content=\"Tomislav Stankovi\u0107\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-04T17:47:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-05T17:50:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/Ionic-WordPress-REST-API.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"825\" \/>\n\t<meta property=\"og:image:height\" content=\"510\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tomislav Stankovi\u0107\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisao\/la\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tomislav Stankovi\u0107\" \/>\n\t<meta name=\"twitter:label2\" content=\"Procijenjeno vrijeme \u010ditanja\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/\"},\"author\":{\"name\":\"Tomislav Stankovi\u0107\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"headline\":\"Ionic 3 i WordPress REST API &#8211; prikaz blog postova\",\"datePublished\":\"2018-03-04T17:47:30+00:00\",\"dateModified\":\"2019-01-05T17:50:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/\"},\"wordCount\":401,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Ionic-WordPress-REST-API.jpg\",\"keywords\":[\"Ionic\",\"Ionic 3\",\"REST API\",\"WordPress\"],\"articleSection\":[\"Mobile\",\"Razvoj\"],\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/\",\"name\":\"Ionic 3 i WordPress REST API - prikaz blog postova - Tomislav Stankovi\u0107\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Ionic-WordPress-REST-API.jpg\",\"datePublished\":\"2018-03-04T17:47:30+00:00\",\"dateModified\":\"2019-01-05T17:50:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#breadcrumb\"},\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Ionic-WordPress-REST-API.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Ionic-WordPress-REST-API.jpg\",\"width\":825,\"height\":510,\"caption\":\"Ionic 3 i WordPress REST API - prikaz blog postova\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/ionic3-wordpress-rest-api-blog-postovi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Po\u010detna stranica\",\"item\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ionic 3 i WordPress REST API &#8211; prikaz blog postova\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\",\"name\":\"Tomislav Stankovi\u0107\",\"description\":\"Sam svoj bloger\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\",\"name\":\"Tomislav Stankovi\u0107\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"width\":248,\"height\":165,\"caption\":\"Tomislav Stankovi\u0107\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\"},\"description\":\"Bloger \u0161irokog raspona interesa od kojih dio voli objaviti na ovom blogu. U neslobodno vrijeme Angular developer mobilnih i web aplikacija.\",\"sameAs\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/tomislavstankovic\\\/\"],\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/author\\\/tomislavstankovic\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ionic 3 i WordPress REST API - prikaz blog postova - Tomislav Stankovi\u0107","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.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/","og_locale":"hr_HR","og_type":"article","og_title":"Ionic 3 i WordPress REST API - prikaz blog postova - Tomislav Stankovi\u0107","og_description":"U ovom \u0107u blog postu napraviti primjer Ionic 3 aplikacije koja \u0107e prikazivati popis blog postova sa ovog bloga koriste\u0107i WordPress REST API. Na po\u010detnoj stranici biti \u0107e popis blog postova (naziv, vrijeme objave, kategorije, kratak sadr\u017eaj i slika) te \u0107e se mo\u0107i pristupiti svakom blog postu pojedina\u010dno. Kreiranje aplikacije Za po\u010detak kreiram novu Ionic &hellip; Nastavi \u010ditati Ionic 3 i WordPress REST API &#8211; prikaz blog postova","og_url":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/","og_site_name":"Tomislav Stankovi\u0107","article_published_time":"2018-03-04T17:47:30+00:00","article_modified_time":"2019-01-05T17:50:27+00:00","og_image":[{"width":825,"height":510,"url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/Ionic-WordPress-REST-API.jpg","type":"image\/jpeg"}],"author":"Tomislav Stankovi\u0107","twitter_card":"summary_large_image","twitter_misc":{"Napisao\/la":"Tomislav Stankovi\u0107","Procijenjeno vrijeme \u010ditanja":"6 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#article","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/"},"author":{"name":"Tomislav Stankovi\u0107","@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"headline":"Ionic 3 i WordPress REST API &#8211; prikaz blog postova","datePublished":"2018-03-04T17:47:30+00:00","dateModified":"2019-01-05T17:50:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/"},"wordCount":401,"commentCount":0,"publisher":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/Ionic-WordPress-REST-API.jpg","keywords":["Ionic","Ionic 3","REST API","WordPress"],"articleSection":["Mobile","Razvoj"],"inLanguage":"hr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/","url":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/","name":"Ionic 3 i WordPress REST API - prikaz blog postova - Tomislav Stankovi\u0107","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#primaryimage"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/Ionic-WordPress-REST-API.jpg","datePublished":"2018-03-04T17:47:30+00:00","dateModified":"2019-01-05T17:50:27+00:00","breadcrumb":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#breadcrumb"},"inLanguage":"hr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/"]}]},{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#primaryimage","url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/Ionic-WordPress-REST-API.jpg","contentUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2018\/03\/Ionic-WordPress-REST-API.jpg","width":825,"height":510,"caption":"Ionic 3 i WordPress REST API - prikaz blog postova"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tomislavstankovic.com\/blog\/ionic3-wordpress-rest-api-blog-postovi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Po\u010detna stranica","item":"https:\/\/www.tomislavstankovic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ionic 3 i WordPress REST API &#8211; prikaz blog postova"}]},{"@type":"WebSite","@id":"https:\/\/www.tomislavstankovic.com\/blog\/#website","url":"https:\/\/www.tomislavstankovic.com\/blog\/","name":"Tomislav Stankovi\u0107","description":"Sam svoj bloger","publisher":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tomislavstankovic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d","name":"Tomislav Stankovi\u0107","image":{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","contentUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","width":248,"height":165,"caption":"Tomislav Stankovi\u0107"},"logo":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg"},"description":"Bloger \u0161irokog raspona interesa od kojih dio voli objaviti na ovom blogu. U neslobodno vrijeme Angular developer mobilnih i web aplikacija.","sameAs":["https:\/\/www.tomislavstankovic.com\/blog\/","https:\/\/www.linkedin.com\/in\/tomislavstankovic\/"],"url":"https:\/\/www.tomislavstankovic.com\/blog\/author\/tomislavstankovic\/"}]}},"_links":{"self":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/5051","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/comments?post=5051"}],"version-history":[{"count":31,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/5051\/revisions"}],"predecessor-version":[{"id":7099,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/5051\/revisions\/7099"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media\/7100"}],"wp:attachment":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media?parent=5051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/categories?post=5051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/tags?post=5051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}