{"id":231114,"date":"2022-12-26T17:12:00","date_gmt":"2022-12-26T14:12:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231114"},"modified":"2022-12-26T17:14:14","modified_gmt":"2022-12-26T14:14:14","slug":"kas-kasutate-kuepsiste-asemel-wordpressi-siirdeid","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kas-kasutate-kuepsiste-asemel-wordpressi-siirdeid\/","title":{"rendered":"Kas kasutate k\u00fcpsiste asemel WordPressi siirdeid?"},"content":{"rendered":"\n<p><a href=\"https:\/\/tommcfarlin.com\/set-cookies-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Olen varem kirjutanud k\u00fcpsiste kasutamisest WordPressis, kuid \u00fcks asi selle tegemisel on see, et tavaliselt k\u00e4ivituvad need p\u00e4rast<\/a> <strong>algkonksu<\/strong> kontekstis .<\/p>\n<p>Kui t\u00f6\u00f6tate objektorienteeritud viisil ja proovite lahti siduda teatud loogikat\u00fckid, et saaksite neid kasutada ilma, et peaksite lootma teistele konksudele, on oluline leida viise, kuidas sellega toime tulla.<\/p>\n<p>Vastasel juhul on kood tihedalt seotud ja teil v\u00f5ib k\u00f5ikjal olla konksud, <strong>do_action<\/strong> kutsed v\u00f5i anon\u00fc\u00fcmsed funktsioonid.<\/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=\"Kas kasutate k\u00fcpsiste asemel WordPressi siirdeid?\"><\/a><\/p>\n<p>K\u00fcpsiste olemuse ja nende aegumise funktsiooni simuleerimiseks v\u00f5ib WordPressi \u00fcleminekute kasutamine sobiva nimega <a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Transients API<\/a> kaudu olla eluj\u00f5uline lahendus.<\/p>\n<h2>WordPressi \u00fcleminekute kasutamine<\/h2>\n<p>Kui olete tuttav m\u00f5ne WordPressis oleva metaandmete API-ga, siis olete t\u00f5en\u00e4oliselt tuttav nende kasutatavate funktsioonidega. See h\u00f5lmab standardtoiminguid, nagu <strong>lisamine<\/strong>, <strong>hankimine<\/strong>, <strong>v\u00e4rskendamine<\/strong> ja <strong>kustutamine<\/strong>.<\/p>\n<p>Ja WordPressiga saate seda paljudes kohtades v\u00e4rskendada, hankida ja kustutada, kuna <strong>v\u00e4rskendamine<\/strong> n\u00e4eb esmalt, kas teave on olemas, ja kui ei, siis lisab selle.<\/p>\n<h3>Klassi liidese kujundamine<\/h3>\n<p>Seega v\u00f5ib Transients API-d pakkuva klassi liidese taandada j\u00e4rgmiselt:<\/p>\n<ul>\n<li>komplekt,<\/li>\n<li>saada,<\/li>\n<li>kustutada.<\/li>\n<\/ul>\n<p>Kui <strong>komplekt<\/strong> asendab <strong>lisamise<\/strong> ja <strong>v\u00e4rskendamise<\/strong>. Lisaks on tore, kui on olemas abifunktsioonid, nagu <strong>on<\/strong>, mis v\u00f5imaldavad meil kirjutada tingimuslauseid teeki kutsuvasse koodi.<\/p>\n<p>N\u00e4iteks kui soovite teha midagi sellist nagu &quot;kui sellel pole v\u00e4\u00e4rtust, siis naaske&quot;.<\/p>\n<p>Seega v\u00f5ib koodi liides v\u00e4lja n\u00e4ha umbes <a href=\"https:\/\/gist.github.com\/tommcfarlin\/f6f57f45405f609fcd14905c54b30f25#file-00-data-store-interface-1-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selline:<\/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>Sellise koodiga t\u00f6\u00f6tamisel tuleb arvestada ka m\u00f5ne hoiatusega. See t\u00e4hendab, kuidas on lood autentitud ja autentimata kasutajatega?<\/p>\n<p>Kui see juhtub, v\u00f5ib tekkida vajadus m\u00f6\u00f6duvate andmete k\u00e4sitlemiseks muul viisil (olenevalt \u00fclaltoodud rakendusmeetodist).<\/p>\n<p>Ma v\u00f5in seda siiski k\u00e4sitleda j\u00e4rgmises postituses.<\/p>\n<h2>Hoiatuss\u00f5na<\/h2>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/et\/aerge-saastage-wordpressi-valikute-tabelit\/\" title=\"Siin on aga \u00fcks asi, mida meeles pidada: WordPressi valikute tabeli saastamine\">Siin on aga \u00fcks asi, mida meeles pidada: WordPressi valikute tabeli saastamine<\/a> pole hea m\u00f5te. Ja just see on koht, kus siirdeid salvestatakse.<\/p>\n<p>Nii et kui kavatsete kasutada WordPressi siirdeid, siis veenduge, et te ei viska andmebaasi palju v\u00e4\u00e4rtusi.<\/p>\n<p>Just seda, mida vaja. Ja kui vaja on palju andmeid, siis v\u00f5ib-olla peate vaatama oma koodi arhitektuuri v\u00f5i kaaluma teist t\u00fc\u00fcpi andmebaasi.<\/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>K\u00fcpsiste ja nende aegumise funktsiooni simuleerimiseks v\u00f5ib WordPressi transientide kasutamine olla eluj\u00f5uline lahendus.<\/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":[718,894,842,802,863],"tags":[1165],"class_list":["post-231114","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-opetused","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=231114"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/231114\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/237021"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=231114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=231114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=231114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}