{"id":231868,"date":"2022-12-26T18:04:00","date_gmt":"2022-12-26T15:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231868"},"modified":"2022-12-26T18:04:43","modified_gmt":"2022-12-26T15:04:43","slug":"usare-i-transitori-di-wordpress-invece-dei-cookie","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/usare-i-transitori-di-wordpress-invece-dei-cookie\/","title":{"rendered":"Usare i transitori di WordPress invece dei cookie?"},"content":{"rendered":"\n<p><a href=\"https:\/\/tommcfarlin.com\/set-cookies-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ho gi\u00e0 scritto sull&#8217;utilizzo dei cookie in WordPress in<\/a> precedenza, ma una delle cose nel farlo \u00e8 che in genere dopo si attivano nel contesto di un hook <strong>init .<\/strong><\/p>\n<p>Quando si lavora in modo orientato agli oggetti e si tenta di disaccoppiare alcuni elementi logici in modo da poterli utilizzare senza dover fare affidamento su altri hook, \u00e8 importante trovare il modo di gestirlo.<\/p>\n<p>Altrimenti, il codice diventa strettamente accoppiato e puoi avere hook, chiamate <strong>do_action<\/strong> o funzioni anonime dappertutto.<\/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=\"Usare i transitori di WordPress invece dei cookie?\"><\/a><\/p>\n<p>Per simulare la natura dei cookie e la loro caratteristica di scadenza, l&#8217;utilizzo dei transitori di WordPress tramite l&#8217; <a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">API Transients<\/a> opportunamente denominata pu\u00f2 essere una soluzione praticabile.<\/p>\n<h2>Utilizzo dei transitori di WordPress<\/h2>\n<p>Se hai familiarit\u00e0 con una qualsiasi delle API di metadati presenti in WordPress, probabilmente hai familiarit\u00e0 con le funzioni che utilizzano. Ci\u00f2 include operazioni standard come <strong>aggiungere<\/strong>, <strong>ottenere<\/strong>, <strong>aggiornare<\/strong> ed <strong>eliminare<\/strong>.<\/p>\n<p>E con WordPress, puoi semplificarlo in molti posti per aggiornare, ottenere ed eliminare perch\u00e9 l&#8217; <strong>aggiornamento<\/strong> prima vedr\u00e0 se esiste un&#8217;informazione e, in caso contrario, la aggiunger\u00e0.<\/p>\n<h3>Progettazione di un&#8217;interfaccia di classe<\/h3>\n<p>Pertanto, l&#8217;interfaccia per una classe che esegue il wrapping dell&#8217;API Transient potrebbe essere ridotta a:<\/p>\n<ul>\n<li>impostare,<\/li>\n<li>ottenere,<\/li>\n<li>Elimina.<\/li>\n<\/ul>\n<p>Dove <strong>set<\/strong> sostituisce <strong>aggiungi<\/strong> e <strong>aggiorna<\/strong>. Inoltre, \u00e8 bello avere funzioni di supporto come <strong>has<\/strong> che ci consentono di scrivere condizionali nel codice che chiama nella libreria.<\/p>\n<p>Ad esempio, se potresti voler fare qualcosa del tipo &quot;se questo non ha valore, restituisci&quot;.<\/p>\n<p>Pertanto, l&#8217;interfaccia per il codice potrebbe assomigliare <a href=\"https:\/\/gist.github.com\/tommcfarlin\/f6f57f45405f609fcd14905c54b30f25#file-00-data-store-interface-1-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a questa:<\/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>Ci sono anche alcuni avvertimenti da considerare quando si lavora con codice come questo. Cio\u00e8, che dire del caso degli utenti autenticati e degli utenti non autenticati?<\/p>\n<p>Quando ci\u00f2 accade, c&#8217;\u00e8 un altro modo in cui potrebbe essere necessario gestire i dati transitori (a seconda del metodo di implementazione sopra).<\/p>\n<p>Posso coprirlo in un post di follow-up, per\u00f2.<\/p>\n<h2>Una parola di cautela<\/h2>\n<p>Ecco una cosa da ricordare, per\u00f2: non \u00e8 una buona idea <a href=\"https:\/\/wordpress.mediadoma.com\/it\/non-inquinare-la-tabella-delle-opzioni-di-wordpress\/\" title=\"inquinare la tabella delle opzioni di WordPress\">inquinare la tabella delle opzioni di WordPress<\/a>. Ed \u00e8 proprio qui che vengono memorizzati i transitori.<\/p>\n<p>Quindi, se hai intenzione di utilizzare i transitori di WordPress, assicurati di non gettare un sacco di valori nel database.<\/p>\n<p>Proprio quello che serve. E se sono necessari molti dati, forse \u00e8 necessario esaminare l&#8217;architettura del codice o considerare un altro tipo di database.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per simulare i cookie e la loro caratteristica di scadenza, l&#8217;utilizzo dei transitori di WordPress pu\u00f2 essere una soluzione praticabile.<\/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":[896,804,720,844,865],"tags":[1168],"class_list":["post-231868","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-php-6","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/231868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=231868"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/231868\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/237021"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=231868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=231868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=231868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}