{"id":231706,"date":"2022-12-22T09:56:00","date_gmt":"2022-12-22T06:56:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231706"},"modified":"2022-12-07T10:31:35","modified_gmt":"2022-12-07T07:31:35","slug":"non-inquinare-la-tabella-delle-opzioni-di-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/non-inquinare-la-tabella-delle-opzioni-di-wordpress\/","title":{"rendered":"Non inquinare la tabella delle opzioni di WordPress"},"content":{"rendered":"\n<p>Sono un fan dei cicli di rilascio brevi. A seconda del progetto, la durata del ciclo varier\u00e0, ma per molti dei tipi di progetti su cui lavoro, miro ad avere cicli di rilascio di due settimane.<\/p>\n<p>Inoltre, ci sono momenti in cui sto lavorando a un progetto per qualcuno in cui sono necessarie variabili ambientali in modo che il codice sappia se \u00e8 in esecuzione in fase di sviluppo, staging o produzione.<\/p>\n<p>E questo pu\u00f2 essere ottenuto in modo diverso a seconda delle esigenze del progetto. A volte, un file di configurazione funzioner\u00e0, a volte le variabili della stringa di query possono funzionare e altre volte penso che sia ragionevole memorizzare un&#8217;impostazione nel database.<\/p>\n<p>Ma, per quanto riguarda WordPress, penso che scorriamo decisioni di progettazione migliori e gettiamo informazioni nel database, in particolare la tabella delle opzioni, quando le alternative potrebbero essere pi\u00f9 adatte.<\/p>\n<h2>La tabella delle opzioni di WordPress<\/h2>\n<p>Voglio essere chiaro: non credo che la tabella delle opzioni dovrebbe fungere da discarica per le impostazioni quando non si ha nessun altro posto dove inserire informazioni. E questo \u00e8 il succo di questo intero post.<\/p>\n<p>Puoi invece utilizzare:<\/p>\n<ul>\n<li>un file di configurazione,<\/li>\n<li>dati della sessione (se del caso),<\/li>\n<li>una tabella di database personalizzata,<\/li>\n<li>o qualcos&#8217;altro.<\/li>\n<\/ul>\n<p>Allora perch\u00e9 vediamo che questo accade cos\u00ec frequentemente? Non \u00e8 che non ci siano momenti in cui ha senso usarlo. Penso solo che ne abusiamo. Ma ci sono ragioni per cui.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Option_Reference\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Il codice di WordPress<\/a> definisce opzioni come questa:<\/p>\n<blockquote>\n<p><strong>Le opzioni<\/strong> sono dati che WordPress utilizza per memorizzare varie preferenze e impostazioni di configurazione.<\/p>\n<\/blockquote>\n<p>Con una definizione come questa, \u00e8 facile capire perch\u00e9 cos\u00ec tanti lo useranno come un posto dove riporre tutto ci\u00f2 che non sta bene da nessun&#8217;altra parte.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160574-61e70cd8a4ea4.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-160574-61e70cd8a4ea4.png\" alt=\"Non inquinare la tabella delle opzioni di WordPress\" ><\/a><\/p>\n<p>Invece, penso che sia importante porsi la domanda:<\/p>\n<blockquote>\n<p>Per quale tipo di archiviazione [questi dati] sono pi\u00f9 rilevanti?<\/p>\n<\/blockquote>\n<p>Cio\u00e8, se \u00e8 correlato ai post, perch\u00e9 non memorizzarlo nella meta tabella dei post? Lo stesso per i metadati dei termini, i commenti o qualsiasi altra cosa.<\/p>\n<p>Il punto \u00e8 questo:<\/p>\n<p>Trova il posto pi\u00f9 logico in cui archiviare i dati e inserirli l\u00ec.<\/p>\n<p>In altre parole, non gettare dati nella tabella delle opzioni di WordPress perch\u00e9 non si adattano da nessun&#8217;altra parte. Quello lo inquina. Invece, trova &#8211; o crea &#8211; il posto pi\u00f9 logico per esso. Questa \u00e8 probabilmente la prova di un odore di codice e sarebbe una buona ragione per rivalutare l&#8217;architettura del codice e il modo in cui le informazioni vengono rappresentate.<\/p>\n<p>Ma come potrebbe essere? Cio\u00e8, come potremmo prendere un dato pezzo di codice e cambiare il modo in cui \u00e8 rappresentato nel database.<\/p>\n<p>Sfortunatamente, \u00e8 difficile fornire una soluzione prescrittiva a questa domanda ogni volta che esistono cos\u00ec tante varianti nell&#8217;implementazione di un problema. Quindi forse una semplice linea guida \u00e8 in ordine:<\/p>\n<p>Se i dati sono correlati a tipi di dati (o tabelle) preesistenti, utilizzarli; in caso contrario, considera un file di configurazione o una tabella di database personalizzata che si associa al tuo lavoro.<\/p>\n<p>Sono sicuro che ci sono altri fattori guida, ma questo \u00e8 un punto di partenza migliore rispetto al semplice inquinamento della tabella delle opzioni di WordPress.<\/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>Non gettare dati nella tabella delle opzioni di WordPress perch\u00e9 non si adatta da nessun&#8217;altra parte. Quello lo inquina. Invece, trova &#8211; o crea &#8211; il posto pi\u00f9 logico per esso.<\/p>\n","protected":false},"author":1,"featured_media":235679,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[720,865],"tags":[1168],"class_list":["post-231706","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sviluppatore","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/231706","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=231706"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/231706\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/235679"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=231706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=231706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=231706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}