{"id":232196,"date":"2023-01-04T12:23:00","date_gmt":"2023-01-04T09:23:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232196"},"modified":"2022-11-10T08:02:13","modified_gmt":"2022-11-10T05:02:13","slug":"su-funzioni-e-plugin-da-usare","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/su-funzioni-e-plugin-da-usare\/","title":{"rendered":"Su funzioni e plugin da usare"},"content":{"rendered":"\n<p>Ho lavorato a un piccolo progetto, pi\u00f9 un&#8217;applicazione web che un sito, che richiedeva lo sviluppo sia di un tema personalizzato che di funzionalit\u00e0 strettamente accoppiate, ma molto specifiche.<\/p>\n<p>Questo \u00e8 un progetto molto ristretto (di cui probabilmente parler\u00f2 ad un certo punto in futuro), ma nel lavorarci mi ha costretto a tornare un po&#8217; all&#8217;aspetto dello sviluppo del tema dello sviluppo di WordPress.<\/p>\n<p>No, non sto facendo alcun design \u2013 per fortuna \u2013 ma devo lavorare sulle personalizzazioni dei temi da una prospettiva funzionale. Nel fare ci\u00f2, per\u00f2, mi ha fatto rivisitare quanto richiesto <code>functions.php<\/code>e alcune considerazioni che non avevo mai avuto prima.<\/p>\n<p>Inoltre, mi ha indotto a guardare pi\u00f9 in profondit\u00e0 l&#8217;uso <code>mu-plugins<\/code>e a chiedermi quando sono necessari e perch\u00e9 non li ho usati di pi\u00f9 in passato (o anche quando uno avrebbe veramente bisogno di usarli).<\/p>\n<p>Quindi ho intenzione di diventare un po&#8217; poetico su questo.<\/p>\n<pre><code>TL;DR<\/code><\/pre>\n<p>Quando stavo sviluppando lo sviluppo del tema, <code>functions.php<\/code>\u00e8 stato utilizzato per due cose (il che \u00e8 problematico in s\u00e9 e per s\u00e9) ma comunque:<\/p>\n<ol>\n<li>per abilitare o disabilitare le funzionalit\u00e0 nei temi,<\/li>\n<li>per definire la funzionalit\u00e0 specifica del tema.<\/li>\n<\/ol>\n<p>Il <a href=\"https:\/\/developer.wordpress.org\/themes\/basics\/theme-functions\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Manuale per sviluppatori di temi<\/a> recita:<\/p>\n<blockquote>\n<p>Il <code>functions.php<\/code>file \u00e8 dove aggiungi funzionalit\u00e0 uniche al tuo tema WordPress. Pu\u00f2 essere utilizzato per collegarsi alle funzioni principali di WordPress per rendere il tuo tema pi\u00f9 modulare, estensibile e funzionale.<\/p>\n<p>Funzioni dei temi, Manuale per sviluppatori di temi<\/p>\n<\/blockquote>\n<p>E ho capito, ma dal mio punto di vista e poich\u00e9 WordPress si \u00e8 evoluto, penso che <code>functions.php<\/code>dovrebbe essere dedicato a funzionalit\u00e0 specifiche del tema in termini di cose che si collegano direttamente al core come:<\/p>\n<ul>\n<li>funzionalit\u00e0 di personalizzazione,<\/li>\n<li>funzionalit\u00e0 del menu,<\/li>\n<li>registrazione dello script e dello stile,<\/li>\n<li>e cos\u00ec via.<\/li>\n<\/ul>\n<p>Ma se c&#8217;\u00e8 qualcosa che deve essere eseguito durante uno degli hook ed \u00e8 pi\u00f9 sulla falsariga della logica specifica del dominio, allora <strong>non<\/strong> appartiene a quel file.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158759-61e6e52f7b3b5.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-158759-61e6e52f7b3b5.png\" alt=\"Su funzioni e plugin da usare\" ><\/a><\/p>\n<p>Ci\u00f2 solleva una domanda, tuttavia: dove risiedono le funzionalit\u00e0 specifiche del dominio?<\/p>\n<h3>Inserisci i plugin da usare<\/h3>\n<p>So che vedere cose come le <code>inc<\/code>directory stanno diventando pi\u00f9 comuni, ma non mi preoccupo di quelle quando si parla di sviluppo di temi, specialmente quando lo sviluppo di temi non \u00e8 il mio obiettivo e quella particolare struttura di directory non \u00e8 il mio stile.<\/p>\n<p>Ad ogni modo, quando si tratta di soluzioni altamente specializzate (dove una soluzione \u00e8 una combinazione di presentazione e funzionalit\u00e0 strettamente focalizzate), inizio a pensare a <code>mu-plugins<\/code>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158759-61e6e536dbfe7.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-158759-61e6e536dbfe7.png\" alt=\"Su funzioni e plugin da usare\" ><\/a><\/p>\n<p>E il motivo per cui non penso a un plug-in WordPress standard \u00e8 perch\u00e9 generalmente sono progettati per funzionare con qualsiasi tema e per aggiungere funzionalit\u00e0. Non cos\u00ec con <code>mu-plugins<\/code>.<\/p>\n<blockquote>\n<p>I plug-in da utilizzare (aka mu-plugin) sono plug-in installati in una directory speciale all&#8217;interno della cartella del contenuto e che vengono automaticamente abilitati su tutti i siti nell&#8217;installazione.<\/p>\n<p><a href=\"https:\/\/wordpress.org\/support\/article\/must-use-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Plugin da usare<\/a>, WordPress.org<\/p>\n<\/blockquote>\n<p>Quindi ecco il mio processo di pensiero:<\/p>\n<ol>\n<li>I temi sono per la presentazione<\/li>\n<li>I plugin servono per la funzionalit\u00e0.<\/li>\n<li>I plugin sono progettati per essere utilizzati indipendentemente da un tema e per l&#8217;ampiezza di un sito.<\/li>\n<li>I plug-in da utilizzare sono plug-in abilitati e utilizzati per impostazione predefinita<\/li>\n<li>Pertanto, la logica specifica del dominio per una soluzione specializzata dovrebbe risiedere in un plug-in da utilizzare.<\/li>\n<\/ol>\n<p>Certo, si pu\u00f2 sostenere che alcuni temi potrebbero richiedere funzionalit\u00e0 da utilizzare, ma non si adatta ancora all&#8217;idea che la funzionalit\u00e0 dovrebbe risiedere in un plug-in da utilizzare?<\/p>\n<p>In ogni caso, l&#8217;approccio che ho seguito \u00e8 questo:<\/p>\n<ol>\n<li>La funzionalit\u00e0 che associa in modo specifico le funzionalit\u00e0 del tema al core di WordPress entra in <code>functions.php<\/code>.<\/li>\n<li>La funzionalit\u00e0 che \u00e8 logica di dominio ma richiede che l&#8217;intera soluzione funzioni risiede in un file <code>mu-plugin<\/code>.<\/li>\n<\/ol>\n<p>A questo punto <a href=\"https:\/\/tommcfarlin.com\/from-self-employment-to-employment-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">della mia carriera<\/a>, non faccio molto lavoro che si concentri su nient&#8217;altro che il back-end, ma nelle rare opportunit\u00e0 che ho di ampliare il lavoro che sto facendo, scopro che sto ancora cercando di essere come analitico e premuroso sul modo in cui sto costruendo il progetto.<\/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>Funzioni e plug-in da utilizzare sono entrambe cose che meritano di essere prese in considerazione soprattutto quando si creano soluzioni altamente specializzate.<\/p>\n","protected":false},"author":1,"featured_media":158760,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,896,804,720,844,865],"tags":[1168],"class_list":["post-232196","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","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\/232196","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=232196"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232196\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/158760"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=232196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=232196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=232196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}