{"id":233572,"date":"2023-02-17T12:28:00","date_gmt":"2023-02-17T09:28:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233572"},"modified":"2022-11-11T00:24:22","modified_gmt":"2022-11-10T21:24:22","slug":"luo-mukautettuja-viestityyppejae-ja-mukautettuja-taksonomioita-wordpressissae-koodin-mukaan","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/luo-mukautettuja-viestityyppejae-ja-mukautettuja-taksonomioita-wordpressissae-koodin-mukaan\/","title":{"rendered":"Luo mukautettuja viestityyppej\u00e4 ja mukautettuja taksonomioita WordPressiss\u00e4 koodin mukaan"},"content":{"rendered":"\n<p>T\u00e4m\u00e4 on opetusohjelma mukautetun viestityypin ja mukautetun taksonomian luomiseen WordPressiss\u00e4 koodin perusteella. Tarkastellaan yleisi\u00e4 sudenkuoppia ja sit\u00e4, mit\u00e4 argumentteja tulisi k\u00e4ytt\u00e4\u00e4 minimiin mutta riitt\u00e4v\u00e4\u00e4n luomiseen. Koko esimerkki lopussa.<\/p>\n<h2>Mihin koodi lis\u00e4t\u00e4\u00e4n<\/h2>\n<p>Mukautettujen viestityyppien (CPT) ja mukautettujen taksonomioiden luominen WordPressiss\u00e4 voidaan tehd\u00e4 teematiedoston <code>functions.php<\/code>tai laajennuksen sis\u00e4ll\u00e4. Muista, ett\u00e4 mukautettu viestityyppi ja mukautettu taksonomia katoavat, jos vaihdat teemaa tai poistat laajennuksen k\u00e4yt\u00f6st\u00e4. Joten on turvallista poistaa v\u00e4liaikaisesti CPT-rekister\u00f6inti teemasta ja siirt\u00e4\u00e4 se laajennukseen \u2013 kunhan s\u00e4ilyt\u00e4t saman mukautetun viestityypin tai taksonomiatunnisteen slug\/ID:n.<\/p>\n<p><strong>K\u00e4yt\u00e4 aina<\/strong><code>init<\/code> koukkua CPT: n tai taksonomian luomiseen (ja muokkaamiseen). Sen asettaminen juureen <code>functions.php<\/code>(koukun ulkopuolelle) tai mihin tahansa muuhun koukkuun aiheuttaa ongelmia.<\/p>\n<h2>Muokatun viestityypin luominen<\/h2>\n<p>K\u00e4yt\u00e4 <code>register_post_type<\/code>toimintoa mukautetun viestityypin luomiseen. Se hyv\u00e4ksyy kaksi parametria; ensin viestityypin tunniste ja toiseksi taulukko, jossa on kaikki argumentit.<\/p>\n<p>Viestityypin tunniste on viestityyppisi slug-versionimi. Esimerkiksi WordPressin sis\u00e4\u00e4nrakennetut postaustyyppiset viestit ja sivut tunnistetaan &quot; <code>post<\/code>&quot; ja &quot; <code>page<\/code>&quot;. Tunnisteen on oltava yksil\u00f6llinen, sen on noudatettava tiettyj\u00e4 s\u00e4\u00e4nt\u00f6j\u00e4 (pienet kirjaimet, ei v\u00e4lily\u00f6ntej\u00e4 jne.), eik\u00e4 se saa olla WordPressin varattu slugs.<\/p>\n<p>T\u00e4m\u00e4n olen oppinut olemaan minimi, mutta riitt\u00e4v\u00e4n hyv\u00e4 argumentti viestityypin rekister\u00f6imiseksi; Ottaen huomioon, ett\u00e4 kyseess\u00e4 on normaali julkinen CPT ja haluat ohittaa kaikki tunnisteet, joissa lukee &quot;julkaisu&quot; tai &quot;sivu&quot; CPT:si todellisella nimell\u00e4:<\/p>\n<pre><code>add_action('init', function() {\n    register_post_type('book', [\n        'label' =&gt; __('Books', 'txtdomain'),\n        'public' =&gt; true,\n        'menu_position' =&gt; 5,\n        'menu_icon' =&gt; 'dashicons-book',\n        'supports' =&gt; ['title', 'editor', 'thumbnail', 'author', 'revisions', 'comments'],\n        'show_in_rest' =&gt; true,\n        'rewrite' =&gt; ['slug' =&gt; 'book'],\n        'labels' =&gt; [\n            'singular_name' =&gt; __('Book', 'txtdomain'),\n            'add_new_item' =&gt; __('Add new book', 'txtdomain'),\n            'new_item' =&gt; __('New book', 'txtdomain'),\n            'view_item' =&gt; __('View book', 'txtdomain'),\n            'not_found' =&gt; __('No books found', 'txtdomain'),\n            'not_found_in_trash' =&gt; __('No books found in trash', 'txtdomain'),\n            'all_items' =&gt; __('All books', 'txtdomain'),\n            'insert_into_item' =&gt; __('Insert into book', 'txtdomain')\n        ],      \n    ]);\n});<\/code><\/pre>\n<h3>Yleiskatsaus v\u00e4itteisiin<\/h3>\n<p>Huomaa, ett\u00e4 jotkin argumentit periv\u00e4t arvot toisista argumenteista. Ellei niit\u00e4 ole nimenomaisesti asetettu, ne saattavat olla oletusarvoisesti samat tai p\u00e4invastoin kuin toiset. Useat argumentit periv\u00e4t argumentin saman tai p\u00e4invastaisen arvon <code>public<\/code>. Lue <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_post_type\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentaatio<\/a> n\u00e4hd\u00e4ksesi, mik\u00e4 kunkin argumentin oletusarvo on ja jos sinun on ohitettava se.<\/p>\n<p>Jos j\u00e4rjestelm\u00e4nvalvojassa on tekstej\u00e4, jotka viittaavat viestityyppiisi &quot;viesti&quot; tai &quot;sivu&quot;, voit ohittaa tunnisteargumenttien m\u00e4\u00e4ritt\u00e4misen. Luultavasti p\u00e4rj\u00e4\u00e4t vain <code>label<\/code>(monikkonimi) ja <code>labels<\/code>taulukon sis\u00e4ll\u00e4 vain <code>singular_name<\/code>(yksikk\u00f6nimi).<\/p>\n<p>Jos et nimenomaisesti aseta <code>show_in_rest<\/code>arvoksi tosi, mukautettu pos-tyyppisi k\u00e4ytt\u00e4\u00e4 vanhaa klassista editoria. <strong>Jos haluat k\u00e4ytt\u00e4\u00e4 Gutenberg-editoria mukautetulle viestityypille, sinun on asetettava <code>show_in_rest<\/code>arvoksi tosi<\/strong>.<\/p>\n<p>Argumentti <code>supports<\/code>kertoo, mitk\u00e4 elementit ovat k\u00e4ytett\u00e4viss\u00e4, kun muokkaat viestityyppi\u00e4si olevaa viesti\u00e4. Haluat luultavasti v\u00e4hint\u00e4\u00e4n otsikon, editorin ja esitellyn viestin kuvan.<\/p>\n<p>V\u00e4himm\u00e4istaulukkoelementti\u00e4 <code>rewrite<\/code>sis\u00e4lt\u00e4v\u00e4 argumentti <code>slug<\/code>k\u00e4skee WordPressin kirjoittamaan uudelleen kaikki viestityyppisi yksikk\u00f6viestit k\u00e4ytt\u00e4m\u00e4\u00e4n t\u00e4t\u00e4 etuliitett\u00e4. Yll\u00e4 olevassa esimerkiss\u00e4 yksitt\u00e4inen kirjaviesti saisi URL-osoitteen, kuten; &quot; <a href=\"http:\/\/example.com\/book\/i-robot\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/example.com\/book\/i-robot\/<\/a> &quot;. Jos olet kiinnostunut siit\u00e4, kuinka voit lis\u00e4t\u00e4 pysyv\u00e4n linkin s\u00e4\u00e4nt\u00f6asetuksen j\u00e4rjestelm\u00e4nvalvojaan, jotta teeman k\u00e4ytt\u00e4j\u00e4t voivat p\u00e4\u00e4tt\u00e4\u00e4 itse t\u00e4st\u00e4 h\u00e4iri\u00f6st\u00e4, katso <a href=\"https:\/\/awhitepixel.com\/blog\/how-to-add-a-custom-permalink-setting-for-your-custom-post-type\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4 viesti<\/a>.<\/p>\n<p>Valikkokuvakkeen (<code>menu_icon<\/code>) argumentti voi olla mik\u00e4 tahansa seuraavista <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dashiconeista<\/a> tai voit j\u00e4tt\u00e4\u00e4 sen tyhj\u00e4ksi s\u00e4ilytt\u00e4\u00e4ksesi oletusarvon. Oletus on sama kuvake kuin Viestit. On kuitenkin hyv\u00e4 idea erottaa mukautetut viestityypit selke\u00e4sti.<\/p>\n<p>Valikon sijainti (<code>menu_position<\/code>) antaa sinun p\u00e4\u00e4tt\u00e4\u00e4 mukautetun viestityypin sijainnin j\u00e4rjestelm\u00e4nvalvojan valikossa. Dokumentaatiossa luetellaan kaikki j\u00e4rjestelm\u00e4nvalvojan valikon paikat, jotta voit s\u00e4\u00e4t\u00e4\u00e4; paikka 5 on heti &quot;Viestit&quot; j\u00e4lkeen.<\/p>\n<p>On toinenkin argumentti (<code>taxonomies<\/code>) taksonomian liitt\u00e4miselle viestityyppiin. K\u00e4ymme l\u00e4pi, kuinka mukautettu taksonomia lis\u00e4t\u00e4\u00e4n my\u00f6hemmin t\u00e4ss\u00e4 viestiss\u00e4. Jos haluat lis\u00e4t\u00e4 taksonomioita viestityyppiisi, lis\u00e4\u00e4 t\u00e4m\u00e4 argumentti yll\u00e4 olevaan taulukkoon;<\/p>\n<pre><code>'taxonomies' =&gt; ['book_author'],<\/code><\/pre>\n<h3>Huomautus pysyvist\u00e4 linkeist\u00e4 ja 404 ei l\u00f6ytynyt -virheist\u00e4<\/h3>\n<p>Kun olet lis\u00e4nnyt koodin mukautetun viestityypin rekister\u00f6inti\u00e4 varten, huomaat, ett\u00e4 yksitt\u00e4isen viestin tarkastelu palauttaa &quot;404 ei l\u00f6ytynyt&quot; -virheen. T\u00e4m\u00e4 johtuu siit\u00e4, ett\u00e4 sinun on &quot;p\u00e4ivitett\u00e4v\u00e4 pysyv\u00e4t linkit&quot;.<\/p>\n<p>Siirry kohtaan Asetukset&gt; Pysyv\u00e4t linkit ja napsauta &quot;Tallenna muutokset&quot; -painiketta (ei tarvitse muuttaa mit\u00e4\u00e4n).<\/p>\n<p>Muista, ett\u00e4 aina kun muutat <code>rewrite<\/code>m\u00e4\u00e4ritett\u00e4, sinun on p\u00e4ivitett\u00e4v\u00e4 pysyv\u00e4t linkit uudelleen.<\/p>\n<h2>Muokatun taksonomian luominen<\/h2>\n<p>Mukautettu taksonomia voidaan liitt\u00e4\u00e4 johonkin WordPressin viestityypeist\u00e4 (viestit, sivut) tai mukautettuun viestityyppiin. Voit my\u00f6s liitt\u00e4\u00e4 viestityyppiin useita taksonomioita. Kun rekister\u00f6it taksonomian, sinun on annettava viestityypit, joihin haluat sen liitett\u00e4v\u00e4n.<\/p>\n<p>Taksonomia voi olla joko hierarkkinen (kuten viestiluokat, joissa voit luoda puupohjaisen rakenteen) tai tunnistepohjainen (kuten viestitunnisteet). T\u00e4m\u00e4 on oikeastaan \u200b\u200bainoa seikka, joka sinun on tiedett\u00e4v\u00e4 etuk\u00e4teen, lukuun ottamatta sen tunnisteetanaa. Kuten CPT:iss\u00e4, taksonomiaan tunnistavan etanan on oltava yksil\u00f6llinen ja noudatettava tiettyj\u00e4 s\u00e4\u00e4nt\u00f6j\u00e4.<\/p>\n<p>Mukautetun taksonomian rekister\u00f6imiseen k\u00e4yt\u00e4t <code>register_taxonomy<\/code>toimintoa. Hyv\u00e4ksyy <code>register_taxonomy<\/code>taksonomian yksil\u00f6llisen tunnisteen slug ensimm\u00e4isen\u00e4 argumenttina, joukon viestityyppej\u00e4, joihin se liitet\u00e4\u00e4n toiseksi, ja lopuksi taulukon, jossa on kaikki muut argumentit. Argumentteja on monia, mutta t\u00e4m\u00e4n olen kokenut v\u00e4himm\u00e4ism\u00e4\u00e4r\u00e4ksi mutta riitt\u00e4v\u00e4ksi mukautetun taksonomian rekister\u00f6imiseksi (t\u00e4m\u00e4 lis\u00e4\u00e4 tunnistetyyppisen\/ei-hierarkkisen taksonomian):<\/p>\n<pre><code>add_action('init', function() {\n    register_taxonomy('book_author', ['book'], [\n        'label' =&gt; __('Authors', 'txtdomain'),\n        'hierarchical' =&gt; false,\n        'rewrite' =&gt; ['slug' =&gt; 'book-author'],\n        'show_admin_column' =&gt; true,\n        'show_in_rest' =&gt; true,\n        'labels' =&gt; [\n            'singular_name' =&gt; __('Author', 'txtdomain'),\n            'all_items' =&gt; __('All Authors', 'txtdomain'),\n            'edit_item' =&gt; __('Edit Author', 'txtdomain'),\n            'view_item' =&gt; __('View Author', 'txtdomain'),\n            'update_item' =&gt; __('Update Author', 'txtdomain'),\n            'add_new_item' =&gt; __('Add New Author', 'txtdomain'),\n            'new_item_name' =&gt; __('New Author Name', 'txtdomain'),\n            'search_items' =&gt; __('Search Authors', 'txtdomain'),\n            'popular_items' =&gt; __('Popular Authors', 'txtdomain'),\n            'separate_items_with_commas' =&gt; __('Separate authors with comma', 'txtdomain'),\n            'choose_from_most_used' =&gt; __('Choose from most used authors', 'txtdomain'),\n            'not_found' =&gt; __('No Authors found', 'txtdomain'),\n        ]\n    ]);\n});<\/code><\/pre>\n<p>On suositeltavaa lis\u00e4t\u00e4 funktiokutsu heti merkin j\u00e4lkeen <code>register_taxonomy<\/code>varmistaaksesi, ett\u00e4 se &quot;liittyy&quot; oikein CPT:hen: <code>register_taxonomy_for_object_type<\/code>. M\u00e4\u00e4rit\u00e4 taksonomiasi ensimm\u00e4iseksi argumentiksi ja CPT toiseksi:<\/p>\n<pre><code>register_taxonomy_for_object_type('book_author', 'book');<\/code><\/pre>\n<p>Samoin kuin yll\u00e4 oleva viestityyppi, <code>register_taxonomy<\/code>hyv\u00e4ksyy paljon enemm\u00e4n argumentteja, ja monet niist\u00e4 periv\u00e4t tai riippuvat muiden argumenttien arvosta. Lue <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_taxonomy\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentaatio<\/a> n\u00e4hd\u00e4ksesi, mik\u00e4 kunkin argumentin oletusarvo on ja jos sinun on ohitettava se.<\/p>\n<h3>Yleiskatsaus v\u00e4itteisiin<\/h3>\n<p>Jos sinun on hyv\u00e4 k\u00e4ytt\u00e4\u00e4 tekstej\u00e4, jotka viittaavat taksonomiaan &quot;tunnisteella&quot; (jos hierarkkinen on ep\u00e4tosi) tai &quot;kategoria&quot; (jos hierarkkinen on totta), voit luultavasti ohittaa koko <code>labels<\/code>taulukon, paitsi ehk\u00e4 <code>singular_name<\/code>.<\/p>\n<p>Se <code>show_admin_column<\/code>on k\u00e4tev\u00e4 lis\u00e4tt\u00e4ess\u00e4 sarake, joka n\u00e4ytt\u00e4\u00e4 taksonomiaasi liittyv\u00e4t termit CPT-hallintan\u00e4yt\u00f6ss\u00e4. Aivan kuten Viesteiss\u00e4, n\u00e4et sarakkeen, joka n\u00e4ytt\u00e4\u00e4 liittyv\u00e4t luokat. T\u00e4m\u00e4n argumentin oletusasetuksena on <code>false<\/code>(\u00e4l\u00e4 n\u00e4yt\u00e4 saraketta), joten haluan ohittaa sen.<\/p>\n<p>Tosi- asetuksen asettaminen <code>show_in_rest<\/code>on v\u00e4ltt\u00e4m\u00e4t\u00f6nt\u00e4, jotta taksonomiasi n\u00e4kyy Post edit in Gutenberg -editorissa, koska Gutenberg luottaa REST API:han.<\/p>\n<p>Samoin kuin mukautetuissa viestityypeiss\u00e4, saat todenn\u00e4k\u00f6isesti &quot;404 ei l\u00f6ytynyt&quot; -virheit\u00e4 mukautetussa taksonomiassasi. Siirry kohtaan Asetukset&gt; Pysyv\u00e4t linkit ja napsauta &quot;Tallenna muutokset&quot; -painiketta.<\/p>\n<h2>T\u00e4ydellinen esimerkkikoodi<\/h2>\n<p>T\u00e4ss\u00e4 on t\u00e4ydellinen esimerkki CPT:n luomisesta kirjoille ja kahden mukautetun taksonomian liitt\u00e4misest\u00e4; genre (hierarkkinen) ja kirjan tekij\u00e4 (tunniste).<\/p>\n<pre><code>add_action('init', function() {\n    register_post_type('book', [\n        'label' =&gt; __('Books', 'txtdomain'),\n        'public' =&gt; true,\n        'menu_position' =&gt; 5,\n        'menu_icon' =&gt; 'dashicons-book',\n        'supports' =&gt; ['title', 'editor', 'thumbnail', 'author', 'revisions', 'comments'],\n        'show_in_rest' =&gt; true,\n        'rewrite' =&gt; ['slug' =&gt; 'book'],\n        'taxonomies' =&gt; ['book_author', 'book_genre'],\n        'labels' =&gt; [\n            'singular_name' =&gt; __('Book', 'txtdomain'),\n            'add_new_item' =&gt; __('Add new book', 'txtdomain'),\n            'new_item' =&gt; __('New book', 'txtdomain'),\n            'view_item' =&gt; __('View book', 'txtdomain'),\n            'not_found' =&gt; __('No books found', 'txtdomain'),\n            'not_found_in_trash' =&gt; __('No books found in trash', 'txtdomain'),\n            'all_items' =&gt; __('All books', 'txtdomain'),\n            'insert_into_item' =&gt; __('Insert into book', 'txtdomain')\n        ],      \n    ]);\n\u00a0\n    register_taxonomy('book_genre', ['book'], [\n        'label' =&gt; __('Genres', 'txtdomain'),\n        'hierarchical' =&gt; true,\n        'rewrite' =&gt; ['slug' =&gt; 'book-genre'],\n        'show_admin_column' =&gt; true,\n        'show_in_rest' =&gt; true,\n        'labels' =&gt; [\n            'singular_name' =&gt; __('Genre', 'txtdomain'),\n            'all_items' =&gt; __('All Genres', 'txtdomain'),\n            'edit_item' =&gt; __('Edit Genre', 'txtdomain'),\n            'view_item' =&gt; __('View Genre', 'txtdomain'),\n            'update_item' =&gt; __('Update Genre', 'txtdomain'),\n            'add_new_item' =&gt; __('Add New Genre', 'txtdomain'),\n            'new_item_name' =&gt; __('New Genre Name', 'txtdomain'),\n            'search_items' =&gt; __('Search Genres', 'txtdomain'),\n            'parent_item' =&gt; __('Parent Genre', 'txtdomain'),\n            'parent_item_colon' =&gt; __('Parent Genre:', 'txtdomain'),\n            'not_found' =&gt; __('No Genres found', 'txtdomain'),\n        ]\n    ]);\n    register_taxonomy_for_object_type('book_genre', 'book');\n\u00a0\n    register_taxonomy('book_author', ['book'], [\n        'label' =&gt; __('Authors', 'txtdomain'),\n        'hierarchical' =&gt; false,\n        'rewrite' =&gt; ['slug' =&gt; 'book-author'],\n        'show_admin_column' =&gt; true,\n        'labels' =&gt; [\n            'singular_name' =&gt; __('Author', 'txtdomain'),\n            'all_items' =&gt; __('All Authors', 'txtdomain'),\n            'edit_item' =&gt; __('Edit Author', 'txtdomain'),\n            'view_item' =&gt; __('View Author', 'txtdomain'),\n            'update_item' =&gt; __('Update Author', 'txtdomain'),\n            'add_new_item' =&gt; __('Add New Author', 'txtdomain'),\n            'new_item_name' =&gt; __('New Author Name', 'txtdomain'),\n            'search_items' =&gt; __('Search Authors', 'txtdomain'),\n            'popular_items' =&gt; __('Popular Authors', 'txtdomain'),\n            'separate_items_with_commas' =&gt; __('Separate authors with comma', 'txtdomain'),\n            'choose_from_most_used' =&gt; __('Choose from most used Authors', 'txtdomain'),\n            'not_found' =&gt; __('No Authors found', 'txtdomain'),\n        ]\n    ]);\n    register_taxonomy_for_object_type('book_author', 'book');\n});<\/code><\/pre>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Opas mukautettujen viestityyppien ja mukautettujen taksonomioiden luomiseen WordPressiss\u00e4 koodin mukaan. Kattaa argumentit, joita k\u00e4ytet\u00e4\u00e4n minimiin mutta riitt\u00e4v\u00e4\u00e4n luomiseen.<\/p>\n","protected":false},"author":1,"featured_media":152888,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[927,895,719,719,895,917,917,1110,843,803,803,927,843,864,864],"tags":[1166],"class_list":{"0":"post-233572","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-aiheita","8":"category-koodi","9":"category-kehittaejae","12":"category-muut","14":"category-n-a","15":"category-opetusohjelmia","16":"category-php-5","20":"category-wordpress-5","22":"tag-affiai-fi"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=233572"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233572\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/152888"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}