{"id":231675,"date":"2022-12-26T17:22:00","date_gmt":"2022-12-26T14:22:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231675"},"modified":"2022-12-26T17:22:07","modified_gmt":"2022-12-26T14:22:07","slug":"kaeytaetkoe-wordpress-transientteja-evaesteiden-sijaan","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kaeytaetkoe-wordpress-transientteja-evaesteiden-sijaan\/","title":{"rendered":"K\u00e4yt\u00e4tk\u00f6 WordPress-transientteja ev\u00e4steiden sijaan?"},"content":{"rendered":"\n<p><a href=\"https:\/\/tommcfarlin.com\/set-cookies-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Olen kirjoittanut ev\u00e4steiden k\u00e4ytt\u00e4misest\u00e4 WordPressiss\u00e4<\/a> aiemmin, mutta yksi asia sen tekemisess\u00e4 on, ett\u00e4 ne yleens\u00e4 k\u00e4ynnistyv\u00e4t <strong>init<\/strong> &#8211; hook:n yhteydess\u00e4.<\/p>\n<p>Kun ty\u00f6skentelet oliokeskeisell\u00e4 tavalla ja yrit\u00e4t irrottaa tiettyj\u00e4 logiikkaa niin, ett\u00e4 voit k\u00e4ytt\u00e4\u00e4 niit\u00e4 ilman, ett\u00e4 sinun tarvitsee luottaa muihin koukkuihin, on t\u00e4rke\u00e4\u00e4 l\u00f6yt\u00e4\u00e4 tapoja k\u00e4sitell\u00e4 t\u00e4t\u00e4.<\/p>\n<p>Muussa tapauksessa koodi kytkeytyy tiukasti toisiinsa, ja sinulla voi olla koukkuja, <strong>do_action -kutsuja<\/strong> tai anonyymej\u00e4 toimintoja kaikkialla.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159955-61e70123bd8a1.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159955-61e70123bd8a1.png\" alt=\"K\u00e4yt\u00e4tk\u00f6 WordPress-transientteja ev\u00e4steiden sijaan?\"><\/a><\/p>\n<p>Ev\u00e4steiden luonteen ja niiden vanhenemisominaisuuden simuloimiseksi WordPress-transienttien k\u00e4ytt\u00e4minen asianmukaisesti nimetyn <a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Transients API<\/a> :n kautta voi olla k\u00e4ytt\u00f6kelpoinen ratkaisu.<\/p>\n<h2>WordPress-transienttien k\u00e4ytt\u00e4minen<\/h2>\n<p>Jos tunnet jonkin WordPressin metadata-sovellusliittym\u00e4st\u00e4, tunnet todenn\u00e4k\u00f6isesti niiden k\u00e4ytt\u00e4m\u00e4t toiminnot. T\u00e4m\u00e4 sis\u00e4lt\u00e4\u00e4 vakiotoiminnot, kuten <strong>lis\u00e4\u00e4misen<\/strong>, <strong>hankinnan<\/strong>, <strong>p\u00e4ivitt\u00e4misen<\/strong> ja <strong>poistamisen<\/strong>.<\/p>\n<p>Ja WordPressin avulla voit yksinkertaistaa sit\u00e4 monissa paikoissa p\u00e4ivitt\u00e4mist\u00e4, hankkimista ja poistamista varten, koska <strong>p\u00e4ivitys<\/strong> tarkistaa ensin, onko tietoa olemassa, ja jos ei, lis\u00e4\u00e4 sen.<\/p>\n<h3>Luokkaliittym\u00e4n suunnittelu<\/h3>\n<p>Siten Transients API:n kietovan luokan k\u00e4ytt\u00f6liittym\u00e4 voidaan pienent\u00e4\u00e4 seuraavasti:<\/p>\n<ul>\n<li>aseta,<\/li>\n<li>saada,<\/li>\n<li>poistaa.<\/li>\n<\/ul>\n<p>Miss\u00e4 <strong>asetettu<\/strong> korvaa <strong>lis\u00e4\u00e4<\/strong> ja <strong>p\u00e4ivit\u00e4<\/strong>. Lis\u00e4ksi on mukavaa, ett\u00e4 on olemassa aputoimintoja, kuten <strong>has<\/strong>, joiden avulla voimme kirjoittaa ehdollisia koodia, joka kutsuu kirjastoon.<\/p>\n<p>Jos haluat esimerkiksi tehd\u00e4 jotain &quot;jos t\u00e4ll\u00e4 ei ole arvoa, palaa&quot;.<\/p>\n<p>Siten koodin k\u00e4ytt\u00f6liittym\u00e4 voi n\u00e4ytt\u00e4\u00e4 <a href=\"https:\/\/gist.github.com\/tommcfarlin\/f6f57f45405f609fcd14905c54b30f25#file-00-data-store-interface-1-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4lt\u00e4:<\/a><\/p>\n<pre><code>&lt;?php\n\/**\n * A wrapper for the Transients API. Because using `setcookie` only works in the `init`\n * hook of WordPress, then we need a way to simulate it. That's what the purpose of this class\n * does.\n *\n * It will use the ID of the user who is currently logged in (or the PHP's get_current_user value if\n * they are not logged in).\n *\n * @author Tom McFarlin &lt;tom@tommcfarlin.com&gt;\n *\/\ninterface DataStore {\n    \/**\n     * Determines if a transient value already exists identified with the incoming key.\n     *\n     * @param string $key The key used to identify the key in the database.\n     *\n     * @return bool       True if a transient exists; otherwise, false.\n     *\/\n    public function has( string $key );\n\n    \/**\n     * Saves the specified value for 24 hours.\n     *\n     * @param string $key   The key used to identify the key in the database.\n     * @param string $value The value to save for 24 hours.\n     *\/\n    public function set( string $key, string $value );\n\n    \/**\n     * Retrieves the transient value from the database.\n     *\n     * @param string $key The key used to identify the key in the database.\n     *\n     * @return string     The value associated with the incoming transient.\n     *\/\n    public function get( string $key );\n\n    \/**\n     * Deletes the transient data.\n     *\n     * @param string $key The key used to identify the key in the database.\n     *\/\n    public function delete( string $key );\n}\n<\/code><\/pre>\n<p>My\u00f6s t\u00e4m\u00e4nkaltaisen koodin kanssa ty\u00f6skennelt\u00e4ess\u00e4 on otettava huomioon joitakin varoituksia. Ent\u00e4 todennettujen ja todentamattomien k\u00e4ytt\u00e4jien tilanne?<\/p>\n<p>Kun n\u00e4in tapahtuu, on olemassa toinen tapa, jolla ohimenevi\u00e4 tietoja voidaan joutua k\u00e4sittelem\u00e4\u00e4n (riippuen yll\u00e4 olevasta toteutustavastasi).<\/p>\n<p>Voin kuitenkin k\u00e4sitell\u00e4 sit\u00e4 seuraavassa postauksessa.<\/p>\n<h2>Varoituksen sana<\/h2>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/aelae-saastuta-wordpressin-asetustaulukkoa\/\" title=\"T\u00e4ss\u00e4 on kuitenkin hyv\u00e4 muistaa: WordPressin asetustaulukon saastuttaminen\">T\u00e4ss\u00e4 on kuitenkin hyv\u00e4 muistaa: WordPressin asetustaulukon saastuttaminen<\/a> ei ole hyv\u00e4 idea. Ja juuri t\u00e4h\u00e4n transientit tallennetaan.<\/p>\n<p>Joten jos aiot k\u00e4ytt\u00e4\u00e4 WordPress-transientteja, varmista, ettet heit\u00e4 tietokantaan paljon arvoja.<\/p>\n<p>Juuri mit\u00e4 tarvitaan. Ja jos tarvitaan paljon dataa, sinun on ehk\u00e4 tarkasteltava koodisi arkkitehtuuria tai harkittava muun tyyppist\u00e4 tietokantaa.<\/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>Ev\u00e4steiden ja niiden vanhenemisominaisuuden simuloimiseksi WordPress-transienttien k\u00e4ytt\u00f6 voi olla varteenotettava ratkaisu.<\/p>\n","protected":false},"author":1,"featured_media":237021,"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-231675","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\/231675","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=231675"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231675\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/237021"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}