{"id":229045,"date":"2022-10-23T10:30:00","date_gmt":"2022-10-23T07:30:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229045"},"modified":"2022-11-09T05:18:59","modified_gmt":"2022-11-09T02:18:59","slug":"milloin-kaeyttaeae-wordpress-alitoimintoja-ja-mitae-ne-ovat","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/milloin-kaeyttaeae-wordpress-alitoimintoja-ja-mitae-ne-ovat\/","title":{"rendered":"Milloin k\u00e4ytt\u00e4\u00e4 WordPress-alitoimintoja (ja mit\u00e4 ne ovat?)"},"content":{"rendered":"\n<p>K\u00e4vin \u00e4skett\u00e4in l\u00e4pi prosessin, jossa k\u00e4ytin luokan konstruktoria <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/pysaeytae-laajennuksen-suorittaminen-ilman-riippuvuutta\/\" title=\"est\u00e4m\u00e4\u00e4n laajennusta toimimasta,\" >est\u00e4m\u00e4\u00e4n laajennusta toimimasta,<\/a> jos sen odotettua riippuvuutta ei ladata.<\/p>\n<p>Vaikka en pid\u00e4 t\u00e4t\u00e4 tietty\u00e4 strategiaa ongelmana kertaluonteisessa riippuvuudessa tai tietyiss\u00e4 tilanteissa, on olemassa tapoja, joilla t\u00e4m\u00e4 voi johtaa koodin hajuihin.<\/p>\n<p>Se my\u00f6s est\u00e4\u00e4 meit\u00e4 k\u00e4ytt\u00e4m\u00e4st\u00e4 Coren natiiviominaisuutta, jota kutsutaan WordPress-aliteksteiksi:<\/p>\n<p><a href=\"https:\/\/twitter.com\/JJJ\/status\/822265137935646720\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/twitter.com\/JJJ\/status\/822265137935646720<\/a><\/p>\n<p>Mutta ennen kuin tarkastelen alatekstej\u00e4, haluan varmistaa, ett\u00e4 olen selvill\u00e4 ongelmista, jotka liittyv\u00e4t ehdolliseen l\u00e4hestymistapaan (verus alilauseisiin), jotka voivat lis\u00e4\u00e4nty\u00e4 koodin hajujen kanssa.<\/p>\n<h2>WordPressin alatoiminnot<\/h2>\n<p>On monia tapoja, joilla koodin tuoksuja voidaan selitt\u00e4\u00e4, mutta suosikkitapani <a href=\"https:\/\/en.wikipedia.org\/wiki\/Code_smell\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tulee Martin Fowlerilta<\/a> :<\/p>\n<blockquote>\n<p>\u2026hajut ovat tiettyj\u00e4 koodin rakenteita, jotka osoittavat suunnittelun perusperiaatteiden rikkomista ja vaikuttavat negatiivisesti suunnittelun laatuun.<\/p>\n<\/blockquote>\n<p>Source Makingissa on toinen hieno sivu <a href=\"https:\/\/sourcemaking.com\/refactoring\/smells\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">koodin hajuista,<\/a> jonka suosittelen lukemaan, jos sinulla on mahdollisuus.<\/p>\n<p>Ja tapa, jolla ehtolausekkeet voivat johtaa koodin hajuun, on yksinkertainen: Se voi peitt\u00e4\u00e4 koodisi valtavalla lausejoukolla, joka sis\u00e4lt\u00e4\u00e4 paljon <a href=\"https:\/\/php.net\/manual\/en\/function.class-exists.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">class_exists-<\/a> tarkistuksia.<\/p>\n<p>Ja se on ongelma.<\/p>\n<p>Joka kerta kun lis\u00e4\u00e4t koodiisi toisen riippuvuuden, p\u00e4\u00e4dyt lis\u00e4\u00e4m\u00e4\u00e4n viel\u00e4 yhden ehdollisen tarkistuksen n\u00e4hd\u00e4ksesi, onko luokka l\u00e4sn\u00e4 WordPress-sovelluksessa.<\/p>\n<p>Uskon, ett\u00e4 on ok tehd\u00e4 t\u00e4m\u00e4 yhdell\u00e4 riippuvuudella \u2013 ehk\u00e4 jopa kahdella riippuvuudella \u2013 ja jos ty\u00f6skentelet &quot;riitt\u00e4v\u00e4n korkealla&quot; arkkitehtuurissasi, mutta n\u00e4in ei voi k\u00e4sitell\u00e4 oikein monien riippuvuuksien kanssa tai alemmalla tasolla laajennuksesi.<\/p>\n<p>Siell\u00e4 WordPress-alitoiminnot tulevat kuvaan. N\u00e4et luettelon alateksteist\u00e4 yll\u00e4 olevan Johnin kautta.<\/p>\n<p><a href=\"https:\/\/codex.bbpress.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">My\u00f6s bbPress Codexissa<\/a> on virallinen m\u00e4\u00e4ritelm\u00e4 alatoiminnoille :<\/p>\n<blockquote>\n<p>N\u00e4it\u00e4 sis\u00e4isi\u00e4 toimintoja voidaan pit\u00e4\u00e4 &quot;alitoimintoina&quot;, ja niiden avulla voit lis\u00e4t\u00e4 tai j\u00e4rjest\u00e4\u00e4 uudelleen WordPress-toimintoja tarpeen mukaan bbPressist\u00e4 riippuville laajennuksille.<\/p>\n<\/blockquote>\n<p>Ja n\u00e4et esimerkin siit\u00e4 <a href=\"https:\/\/bbpress.trac.wordpress.org\/browser\/trunk\/src\/includes\/core\/actions.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4ss\u00e4 tiedostossa<\/a>.<\/p>\n<p>Toki t\u00e4m\u00e4 m\u00e4\u00e4ritelm\u00e4 koskee bbPressi\u00e4, mutta se ei tarkoita, etteik\u00f6 se soveltuisi siihen, mit\u00e4 teemme WordPressiss\u00e4.<\/p>\n<p>Esimerkki: Jos olet koskaan k\u00e4ytt\u00e4nyt <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/do_action\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">do_action<\/a> -toimintoa mukautetun toiminnon m\u00e4\u00e4ritt\u00e4miseen tai olet hy\u00f6dynt\u00e4nyt jonkun muun WordPress-ytimen ulkopuolelta tarjoamaa koukkua, tunnet alitoiminnon toteuttamisstrategian.<\/p>\n<p>Toisin sanoen WordPress-alitoiminnot ovat yksinkertaisesti toimintoja, joilla voimme muuttaa j\u00e4rjestyst\u00e4, jossa laajennuksemme riippuu toisesta laajennuksesta.<\/p>\n<p>Se, miten t\u00e4m\u00e4 toteutetaan, voi vaihdella ty\u00f6si kontekstissa, mutta suosituin ja &quot;oikein&quot; WordPress-tapa tehd\u00e4 t\u00e4m\u00e4 on ep\u00e4ilem\u00e4tt\u00e4 hy\u00f6dynt\u00e4\u00e4 laajennuksen latausajankohtaa koskevaa <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">prioriteettiargumenttia .<\/a><\/p>\n<p>Eli ota riippuvuus etusijalle ja varmista, ett\u00e4 se on aikaisempi kuin laajennuksen aktivoituessa.<\/p>\n<p>On olemassa vaihtoehtoisia menetelmi\u00e4, joita voidaan k\u00e4ytt\u00e4\u00e4, kuten muuttaa laajennusten k\u00e4ytt\u00e4ytymist\u00e4 aina, kun ne on aktivoitu tai ei, mutta t\u00e4m\u00e4 ei kuulu t\u00e4m\u00e4n viestin soveltamisalaan, ja se voi muuttaa negatiivisesti k\u00e4ytt\u00f6kokemusta (WordPressin yleens\u00e4, ei v\u00e4hemp\u00e4\u00e4).<\/p>\n<p>Siit\u00e4 huolimatta, pointti on, ett\u00e4 kun kyse on WordPressin alitoimintojen k\u00e4yt\u00f6st\u00e4, olio-ohjelmoinnista ja kolmannen osapuolen riippuvuuksien hallinnasta, varmista, ett\u00e4 tekem\u00e4si p\u00e4\u00e4t\u00f6kset eiv\u00e4t vahingoita koodisi suunnittelua.<\/p>\n<p>Jos on j\u00e4rkev\u00e4\u00e4 tarkistaa luokan olemassaolo, okei, mutta jos on j\u00e4rkev\u00e4mp\u00e4\u00e4 odottaa, kunnes joukko luokkia tai laajennuksia on latautunut ennen omaasi, WordPress-alitoiminnot ovat todenn\u00e4k\u00f6isesti j\u00e4rkev\u00e4mpi\u00e4.<\/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>Kun k\u00e4yt\u00e4t WordPress-alituksia, OOP:ta ja kolmannen osapuolen riippuvuuksia, varmista, etteiv\u00e4t p\u00e4\u00e4t\u00f6ksesi vahingoita koodisi suunnittelua.<\/p>\n","protected":false},"author":1,"featured_media":221089,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,813,917,843,864],"tags":[1166],"class_list":["post-229045","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-laajennuksia","category-muut","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229045","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=229045"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/221089"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=229045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=229045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=229045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}