{"id":229264,"date":"2022-10-28T12:28:00","date_gmt":"2022-10-28T09:28:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229264"},"modified":"2022-11-09T06:12:31","modified_gmt":"2022-11-09T03:12:31","slug":"kuinka-saada-wordpress-taksonomia-termitunnuksen-mukaan","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kuinka-saada-wordpress-taksonomia-termitunnuksen-mukaan\/","title":{"rendered":"Kuinka saada WordPress-taksonomia termitunnuksen mukaan"},"content":{"rendered":"<p>Toisinaan projektin parissa ty\u00f6skennelless\u00e4 on aikoja, jolloin olisi mukavaa k\u00e4ytt\u00e4\u00e4 API-toimintoa, joka auttaisi saavuttamaan mit\u00e4 tahansa teht\u00e4v\u00e4\u00e4. Esimerkki: kyky hakea taksonomia termitunnuksen perusteella.<\/p>\n<p>My\u00f6nnett\u00e4k\u00f6\u00f6n, ett\u00e4 se ei ole vaikea teht\u00e4v\u00e4, mutta kyky hakea tietoja olemassa olevista toiminnoista on aina mukavaa.<\/p>\n<p>Mutta kun se ei ole mahdollista, kirjoitamme oman tapamme tehd\u00e4 se, eik\u00f6 niin?<\/p>\n<h2>Hae taksonomia termitunnuksen mukaan<\/h2>\n<p>Kun ryhdyn tekem\u00e4\u00e4n jotain t\u00e4llaista, k\u00e4yt\u00e4n yleens\u00e4 muutamien muiden kehitt\u00e4jien ideaa varmistaakseni, etten menet\u00e4 jotain WordPress-ytimess\u00e4 olevaa toimintoa, enk\u00e4 vain tied\u00e4 siit\u00e4.<\/p>\n<p>(T\u00e4t\u00e4 tapahtuu enemm\u00e4n kuin uskotkaan, mutta se voi olla minulle enemm\u00e4n ongelma kuin mik\u00e4\u00e4n muu. Siit\u00e4 huolimatta WordPress on iso ohjelmisto :).<\/p>\n<p>T\u00e4m\u00e4n kaltaisen k\u00e4ytt\u00f6tapaus on yksinkertainen:<\/p>\n<ul>\n<li>Minulla on termitunnus, joka on tallennettu tietokantaan jollain muulla tavalla (kuten valitulla elementill\u00e4 muualla sovelluksessa, kuten kojelaudassa).<\/li>\n<li>Haluan n\u00e4ytt\u00e4\u00e4 termin ID:hen liittyv\u00e4n taksonomian nimen.<\/li>\n<\/ul>\n<p>K\u00e4sitteellisesti pid\u00e4n t\u00e4t\u00e4 er\u00e4\u00e4nlaisena k\u00e4\u00e4nteisen\u00e4 ilmeen\u00e4. Normaalisti voimme ottaa taksonomian ja etsi\u00e4 sen ehdot. Mutta taksonomian mukaan termill\u00e4 ID on menossa toiseen suuntaan.<\/p>\n<p>Onneksi se on riitt\u00e4v\u00e4n helppoa, jos luovut <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_term\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">olemassa olevasta API<\/a> :sta. <a href=\"https:\/\/gist.github.com\/tommcfarlin\/475f3d28451809ffd43e5ffcb686e05d\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Tarkista se<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Retrieves the taxonomy name associated on the specified $term_id. \n *\n * @access private\n * @param  int    $term_id  The term ID from which to retrieve the taxonomy name.\n * @return string $taxonomy The name of the taxaonomy associated with the term ID.\n *\/\nprivate function get_taxonomy_by_term_id( $term_id) {\n\n    \/\/ We can't get a term if we don't have a term ID.\n    if (0 === $term_id || null === $term_id) {\n        return;\n    }\n\n    \/\/ Grab the term using the ID then read the name from the associated taxonomy.\n    $taxonomy = '';\n    $term = get_term( $term_id );\n    if (false !== $term) {\n        $taxonomy = $term-&gt;taxonomy;\n    }\n\n    return trim( $taxonomy );\n}\n<\/code><\/pre>\n<p>Koodin tulee olla helppo seurata (ellei funktion yl\u00e4puolella olevia kommentteja varten), mutta se palauttaa joko tyhj\u00e4n merkkijonon tai taksonomian nimen termin ID perusteella.<\/p>\n<p>Koska get_term hakee <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_term\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_Term-<\/a> objektin, voimme tarkastella termin taksonomian ominaisuutta saadaksemme nimen. Leikkaan sitten merkkijonoa varmuuden vuoksi (jos ty\u00f6skentelen jonkun muun koodin kanssa, en koskaan tied\u00e4, onko se t\u00e4ytetty vai ei, enk\u00e4 halua ylim\u00e4\u00e4r\u00e4isi\u00e4 merkkej\u00e4).<\/p>\n<p>Siit\u00e4 huolimatta, nyt sinulla on k\u00e4ytett\u00e4viss\u00e4 toiminto, jolla voit napata taksonomian nimen termill\u00e4 ID. Jos tyhj\u00e4 merkkijono palautetaan, taksonomian nime\u00e4 ei l\u00f6ytynyt.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Joskus olisi mukavaa saada API-toiminto auttamaan taksonomian hakemisessa termitunnuksen perusteella. T\u00e4ss\u00e4 on yksi tapa tehd\u00e4 se.<\/p>\n","protected":false},"author":1,"featured_media":167462,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,843,803,864],"tags":[1166],"class_list":["post-229264","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-opetusohjelmia","category-php-5","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229264","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=229264"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229264\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/167462"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=229264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=229264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=229264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}