<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>plugin wordpress - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/tag/plugin-wordpress/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Sun, 14 Jun 2026 12:02:59 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>plugin wordpress - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AI e plugin WordPress: come il Plugin Team smaschera i cloni GPL e cosa rischi se pubblichi codice generato</title>
		<link>https://www.mrtux.it/ai-plugin-wordpress-gpl-cloni-plugin-team</link>
					<comments>https://www.mrtux.it/ai-plugin-wordpress-gpl-cloni-plugin-team#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sun, 14 Jun 2026 12:02:56 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[AI generated code]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[licenze open source]]></category>
		<category><![CDATA[Plugin Review Team]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/ai-e-plugin-wordpress-come-il-plugin-team-smaschera-i-cloni-gpl-e-cosa-rischi-se-pubblichi-codice-generato</guid>

					<description><![CDATA[Il Plugin Team di WordPress.org ha rifiutato centinaia di plugin generati con AI per violazione di licenza GPL. Ecco come funziona il triage, quali pattern scattano l'allarme, e la checklist operativa per chi pubblica plugin AI-generated e per chi li usa.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Quando il Plugin Review Team di WordPress.org ha iniziato a rifiutare sistematicamente plugin generati con ChatGPT, la reazione della community è stata divisa. Da un lato gli sviluppatori che vedono l&#x27;AI come un acceleratore legittimo. Dall&#x27;altro i maintainer storici che notavano plugin sempre più simili tra loro, con porzioni di codice chiaramente copiate da plugin esistenti, licenze miste, e crediti mancanti. La posizione ufficiale del team, espressa da Mika Epstein (Ipstenu) e ripresa più volte sul blog Make WordPress Plugins, è netta: usare un code generator è permesso, ma il codice risultante deve essere GPL-compatibile al 100%, e la responsabilità della verifica ricade su chi lo pubblica, non sull&#x27;AI.</p>



<p class="wp-block-paragraph">Questo articolo entra nel merito tecnico e legale della questione, partendo da dati reali (case study pubblici di plugin rifiutati, pattern di plagio riscontrati, conseguenze operative) per arrivare a una <strong>checklist concreta</strong> che sviluppatori, agenzie, e site owner possono usare subito. È complementare alla guida su <a href="https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo" data-wpel-link="internal" target="_self" rel="noopener">come creare un plugin WordPress con AI in modo corretto</a> e al tema della <a href="https://www.mrtux.it/plugin-piratati-sicurezza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">sicurezza dei plugin piratati</a>, ma con un angolo inedito: il rischio legale-legato-alla-pubblicazione, non solo all&#x27;uso.</p>



<h2 class="wp-block-heading">Cosa dice davvero la GPL, in parole semplici</h2>



<p class="wp-block-paragraph">La <strong>GNU General Public License v2</strong> (o successiva, &quot;v2+&quot;) è la licenza con cui WordPress e la quasi totalità del suo ecosistema sono distribuiti. In sintesi estrema:</p>



<ul class="wp-block-list"><li>Puoi usare il codice liberamente</li><li>Puoi modificarlo liberamente</li><li>Puoi ridistribuirlo liberamente</li><li><strong>A condizione</strong> che anche le tue modifiche e il tuo lavoro derivato siano distribuiti sotto GPL</li><li><strong>A condizione</strong> che tu citi gli autori originali e mantenga intatte le note di copyright</li></ul>



<p class="wp-block-paragraph">Il punto 4 è quello che manda in crisi i code generator. Quando chiedi a ChatGPT &quot;scrivimi un plugin per la gestione dei custom post type con un&#x27;admin UI moderna&quot;, il modello non distingue tra codice GPL, codice MIT, codice proprietario closed, e codice coperto da copyright ancora attivo. Produce un output plausibile, ma la provenienza di ogni riga è opaca.</p>



<h3 class="wp-block-heading">Cosa fa il Plugin Review Team</h3>



<p class="wp-block-paragraph">Il Plugin Team di WordPress.org è un gruppo di volontari (oggi circa 60-70 reviewer attivi) che esamina ogni plugin sottomesso al repository ufficiale. Non fanno un audit esaustivo del codice: controllano che il plugin non faccia nulla di vietato dalle linee guida (no tracking, no upselling aggressivo, no chiamate a endpoint esterni non documentate, no codice offuscato), e che la GPL sia rispettata. Quando trovano pattern sospetti, rifiutano il plugin e chiedono chiarimenti.</p>



<p class="wp-block-paragraph">Il tempo di review è cresciuto enormemente dal 2023 in poi. Mika Epstein ha dichiarato pubblicamente che il team riceve centinaia di submission al mese, una buona fetta delle quali mostra pattern di &quot;AI senza verifica&quot;: codice funzionante in superficie, ma con licenze miste o porzioni palesemente copiate da plugin già esistenti.</p>



<h2 class="wp-block-heading">I pattern reali che fanno scattare il rifiuto</h2>



<p class="wp-block-paragraph">Dalla documentazione pubblica del Plugin Team e dai case study analizzati, ecco i pattern più comuni di plugin AI-generati che vengono rifiutati.</p>



<h3 class="wp-block-heading">Pattern 1: clone di un plugin esistente</h3>



<p class="wp-block-paragraph">Il caso più frequente. Chiedi a ChatGPT &quot;fammi un plugin per gestire i cookie banner come XYZ&quot;, e il modello produce codice che è una variante funzionale del plugin XYZ ma con il nome cambiato e qualche modifica. Il Plugin Team lo riconosce, rifiuta la submission, e in casi ripetuti chiude l&#x27;account.</p>



<p class="wp-block-paragraph">Caso studio noto: nel 2023-2024, almeno 4 plugin sono stati sottomessi con nome e struttura quasi identica a &quot;Scroll to Top&quot; di Mark Praschan, presentato come lavoro originale. Lo stesso Praschan lo aveva segnalato su Twitter. Tutti rifiutati.</p>



<h3 class="wp-block-heading">Pattern 2: snippet da Stack Overflow con licenza Creative Commons BY-SA</h3>



<p class="wp-block-paragraph">Stack Overflow è rilasciato sotto CC BY-SA 4.0, non GPL. Questo significa che il codice preso da SO <strong>può</strong> essere usato in plugin GPL (le due licenze sono reciprocamente compatibili), ma a due condizioni:</p>



<ol class="wp-block-list"><li>Devi attribuire la fonte all&#x27;autore della risposta</li><li>Devi rilasciare il tuo plugin con la stessa licenza CC BY-SA <strong>oppure</strong> dimostrare la compatibilità con GPL</li></ol>



<p class="wp-block-paragraph">Il Plugin Team verifica questa attribuzione. Molti plugin AI-generated non la includono, e vengono rifiutati. Caso eclatante: plugin che contenevano 30+ snippet di SO copiati verbatim, senza alcun commento di attribuzione. Chiusura immediata del plugin già pubblicato.</p>



<h3 class="wp-block-heading">Pattern 3: porzioni di plugin proprietari (nulled) decompilati</h3>



<p class="wp-block-paragraph">Questo è il caso più grave. Alcuni plugin AI-generated sul mercato non sono affatto generati da zero: sono plugin commerciali (Elementor Pro, SEOPress Pro, WP Rocket) a cui sono state rimosse le protezioni di licenza, e poi &quot;passati a ChatGPT&quot; per giustificare la presenza di codice altrimenti non GPL-compatibile. Il risultato è codice infetto (come abbiamo visto nella <a href="https://www.mrtux.it/plugin-piratati-sicurezza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">guida sui plugin piratati</a>) E violazione di copyright.</p>



<h3 class="wp-block-heading">Pattern 4: licenze miste non documentate</h3>



<p class="wp-block-paragraph">Un plugin può importare correttamente da più fonti, ma se include una libreria MIT deve dichiararlo. Se include una porzione BSD deve dichiararlo. Se include codice Apache 2.0 deve dichiararlo. Il Plugin Team verifica il file <code>readme.txt</code> e l&#x27;header del plugin principale. Plugin AI-generated che omettono queste dichiarazioni vengono rifiutati.</p>



<h3 class="wp-block-heading">Pattern 5: codice generato senza &quot;human in the loop&quot;</h3>



<p class="wp-block-paragraph">Un plugin sottomesso che contiene esattamente le stesse risposte di ChatGPT a un prompt noto (verificabile con un test &quot;scrivimi un plugin per X&quot; e il confronto) è un segnale fortissimo che non c&#x27;è stato lavoro umano di adattamento. Il Plugin Team non vieta l&#x27;AI in sé, ma vieta la pass-through pura.</p>



<h2 class="wp-block-heading">Cosa rischi se pubblichi un plugin AI-generated non verificato</h2>



<p class="wp-block-paragraph">Le conseguenze concrete per uno sviluppatore che sottomette un plugin AI-generated senza le verifiche del caso sono tre.</p>



<h3 class="wp-block-heading">1. Rifiuto della submission</h3>



<p class="wp-block-paragraph">Il minimo sindacale. Il Plugin Team invia una email standardizzata, spiega cosa non va, e tu correggi e ri-sottometti. Tempo perso: 2-7 giorni, niente di drammatico.</p>



<h3 class="wp-block-heading">2. Chiusura del plugin già pubblicato</h3>



<p class="wp-block-paragraph">Se il plugin era già nel repository e il Team scopre una violazione GPL a posteriori (spesso tramite segnalazione di un altro sviluppatore), il plugin viene chiuso. Gli utenti ricevono un errore di installazione al prossimo aggiornamento, e tu ricevi una email di notifica. Danno reputazionale: medio.</p>



<h3 class="wp-block-heading">3. Ban dell&#x27;account sviluppatore</h3>



<p class="wp-block-paragraph">Per violazioni ripetute, il Plugin Team può sospendere l&#x27;account sviluppatore. Significa perdita di accesso a tutti i plugin pubblicati, al repository SVN, e alla reputazione accumulata in anni. Alcuni sviluppatori sono stati banditi per pattern di plagio sistematico.</p>



<h2 class="wp-block-heading">La checklist operativa: come pubblicare plugin AI-generated in modo corretto</h2>



<p class="wp-block-paragraph">Ecco una checklist concreta, testata sul campo, per pubblicare un plugin AI-generated nel rispetto della GPL e delle linee guida WordPress.org.</p>



<h3 class="wp-block-heading">Fase 1: prima di scrivere codice</h3>



<ul class="wp-block-list"><li>[ ] <strong>Definisci il problema in modo originale.</strong> Più il prompt è generico (&quot;fammi un plugin per la SEO&quot;), più il rischio di clone è alto. Specifica il problema di business, non la categoria del plugin</li><li>[ ] <strong>Verifica che non esista già un plugin simile.</strong> Cerca nel repository ufficiale, su GitHub, e sui marketplace commerciali. Se esiste qualcosa di molto simile, valuta se contribuire a quel plugin invece di crearne uno nuovo</li><li>[ ] <strong>Decidi la licenza esplicita.</strong> GPLv2+ è lo standard. Dichiaralo nel file principale e nel readme.txt</li></ul>



<h3 class="wp-block-heading">Fase 2: durante la generazione del codice</h3>



<ul class="wp-block-list"><li>[ ] <strong>Usa l&#x27;AI come assistente, non come autore.</strong> Chiedi a ChatGPT/Claude &quot;spiega come funziona X&quot; o &quot;ottimizza questa funzione&quot;, non &quot;scrivi l&#x27;intero plugin&quot;</li><li>[ ] <strong>Mantieni un log delle fonti.</strong> Se copi uno snippet da SO, GitHub, o un altro plugin, salvalo in un file <code>SOURCES.md</code> con autore, URL, e licenza</li><li>[ ] <strong>Verifica manualmente la provenienza di ogni blocco non ovvio.</strong> Se una funzione di 50 righe è misteriosa, chiediti: l&#x27;ho scritta io o l&#x27;ha generata l&#x27;AI basandosi su cosa?</li></ul>



<h3 class="wp-block-heading">Fase 3: prima della submission</h3>



<ul class="wp-block-list"><li>[ ] <strong>Verifica le licenze di tutte le dipendenze.</strong> Ogni libreria importata deve avere licenza compatibile GPL. Usa uno script automatico:</li></ul>



<pre class="wp-block-code"><code># Comando per scansionare le licenze dichiarate nelle dipendenze Composer
composer licenses 2&gt;/dev/null | grep -v MIT | grep -v BSD | grep -v Apache</code></pre>



<ul class="wp-block-list"><li>[ ] <strong>Controlla il codice con uno strumento di rilevamento plagio.</strong> Strumenti come MOSS (Measure of Software Similarity) oggi hanno dataset insufficienti per il codice AI, ma funzionano per il plagio di plugin esistenti</li><li>[ ] <strong>Verifica l&#x27;header del plugin principale.</strong> Deve contenere <code>License: GPLv2 or later</code> e un commento <code>Author:</code> con il nome reale (no pseudonimi Account-AI)</li><li>[ ] <strong>Testa in un ambiente vergine.</strong> Installa il plugin in un WordPress pulito e controlla che non generi errori, chiamate esterne non documentate, o comportamenti inattesi</li></ul>



<h3 class="wp-block-heading">Fase 4: nella submission</h3>



<ul class="wp-block-list"><li>[ ] <strong>Dichiara l&#x27;uso di AI se rilevante.</strong> Le linee guida non lo richiedono esplicitamente, ma un plugin AI-generated con disclosure onesta ha meno probabilità di essere segnalato per plagio</li><li>[ ] <strong>Fornisci un changelog realistico.</strong> Un plugin con 47 funzionalità rilasciate in v1.0.0, senza un history di beta, è sospetto. Rilascia prima in GitHub, poi in WordPress.org</li><li>[ ] <strong>Rispondi prontamente alle email del Plugin Team.</strong> Se ti chiedono chiarimenti, rispondi entro 48 ore con la documentazione delle fonti</li></ul>



<h2 class="wp-block-heading">Cosa rischi se usi un plugin AI-generated di terzi</h2>



<p class="wp-block-paragraph">Anche se non sei lo sviluppatore, usare un plugin AI-generated di terzi ha rischi specifici. Ecco i principali.</p>



<h3 class="wp-block-heading">Rischio 1: licenza non chiara</h3>



<p class="wp-block-paragraph">Se il plugin non dichiara esplicitamente la licenza, non puoi sapere se puoi fork-arlo, modificarlo, o ridistribuirlo. In ambito aziendale, questo è un problema serio: il legal team blocca l&#x27;uso.</p>



<h3 class="wp-block-heading">Rischio 2: codice coperto da copyright altrui</h3>



<p class="wp-block-paragraph">Se il plugin contiene codice copiato da un plugin GPL senza attribuzione, l&#x27;utente finale non è responsabile (la responsabilità è di chi ha pubblicato), ma il plugin può essere chiuso da un giorno all&#x27;altro, e tu resti con un sito rotto.</p>



<h3 class="wp-block-heading">Rischio 3: plugin chiuso retroattivamente</h3>



<p class="wp-block-paragraph">WordPress.org può chiudere un plugin anche dopo anni di presenza nel repository, se emerge una violazione. Esempio reale: il plugin &quot;WP-Touch&quot; è stato chiuso nel 2019 per motivi di licenza, dopo 9 anni di presenza. I siti che lo usavano hanno dovuto trovare alternative in fretta.</p>



<h3 class="wp-block-heading">Mitigazione: la regola del fork verificato</h3>



<p class="wp-block-paragraph">Per uso aziendale, la regola prudenziale è: <strong>non installare un plugin di cui non puoi fare il fork verificato su GitHub entro 10 minuti</strong>. Se il plugin è solo su WordPress.org, non hai una base di codice indipendente per audit e manutenzione.</p>



<h2 class="wp-block-heading">L&#x27;ecosistema si sta regolando: il caso del Plugin Check</h2>



<p class="wp-block-paragraph">Il <strong>Plugin Check</strong> tool, integrato in WordPress core dalla 6.5 e migliorato nella 7.0, include ora un check specifico per pattern AI-generati sospetti. Non è un rilevatore di AI in senso stretto (impossibile allo stato dell&#x27;arte), ma identifica pattern di plagio da plugin noti confrontando porzioni di codice con un dataset interno.</p>



<pre class="wp-block-code"><code>// Esempio: aggiungere un check custom al Plugin Check
add_filter( 'plugin_check_ai_patterns', function( $patterns ) {
    $patterns[] = [
        'name'        =&gt; 'AI prompt injection in plugin headers',
        'description' =&gt; 'Header del plugin contenenti commenti che sembrano prompt AI',
        'regex'       =&gt; '/\/\/\s*(Ignore previous|You are|Generate|Simulate)/i',
        'severity'    =&gt; 'warning',
    ];
    return $patterns;
} );</code></pre>



<p class="wp-block-paragraph">Per ora il check è warning, non blocker. Ma la direzione è chiara: tra fine 2026 e 2027, è probabile che plugin con pattern di plagio eclatanti vengano rifiutati automaticamente prima ancora della review umana.</p>



<h2 class="wp-block-heading">Caso studio: il plugin NorthStar di Mark Praschan</h2>



<p class="wp-block-paragraph">Uno dei pochi casi ben documentati di plugin generato con AI e accettato dal repository. Mark Praschan, sviluppatore non professionista, ha usato ChatGPT free per generare un plugin &quot;NorthStar&quot; che mostra un messaggio personalizzato nella admin bar. La versione iniziale funzionava, Praschan l&#x27;ha testata, l&#x27;ha rifattorizzata manualmente, e l&#x27;ha pubblicata. Il Plugin Team l&#x27;ha accettata senza problemi.</p>



<p class="wp-block-paragraph">Cosa ha fatto bene Praschan:</p>



<ul class="wp-block-list"><li>Plugin con scope chiaro e limitato (non un clone di un plugin esistente)</li><li>Refactoring manuale del codice generato (non un pass-through)</li><li>Test in ambiente locale prima della submission</li><li>Descrizione onesta nel readme.txt</li></ul>



<p class="wp-block-paragraph">È l&#x27;esempio che il Plugin Team cita quando spiega: l&#x27;AI è uno strumento, non un problema. Il problema è l&#x27;uso pass-through senza verifica.</p>



<h2 class="wp-block-heading">Il futuro: AI disclosure obbligatoria?</h2>



<p class="wp-block-paragraph">Una delle proposte emerse nella community WordPress nel 2025-2026 è l&#x27;introduzione di una <strong>AI disclosure obbligatoria</strong> nei readme.txt dei plugin. Idea: aggiungere un campo <code>AI Generated: yes/no/partial</code> e un altro <code>AI Disclosure: &lt;note testuale&gt;</code>. Pro: trasparenza. Contro: rischio di discriminazione verso plugin AI-generated perfettamente legittimi.</p>



<p class="wp-block-paragraph">La proposta non è ancora stata approvata, ma è in discussione. Se passerà, avremo un ecosistema più trasparente ma anche un nuovo campo di frizione per gli sviluppatori.</p>



<h2 class="wp-block-heading">Domande frequenti</h2>



<h3 class="wp-block-heading">È legale usare ChatGPT per scrivere un plugin WordPress?</h3>



<p class="wp-block-paragraph">Sì, è legale. I termini di servizio di OpenAI consentono l&#x27;uso commerciale dell&#x27;output. La legalità del plugin risultante dipende dalla GPL: se tutto il codice è tuo originale o GPL-compatibile, il plugin è legittimo. Se contiene codice copiato da plugin non GPL senza attribuzione, il plugin è illegale.</p>



<h3 class="wp-block-heading">Come faccio a sapere se il codice generato da ChatGPT è GPL-compatibile?</h3>



<p class="wp-block-paragraph">Non c&#x27;è modo automatico. ChatGPT non traccia la provenienza del codice che produce. La verifica deve essere manuale: se una funzione è misteriosa o ti sembra &quot;troppo perfetta&quot; per essere generata, chiedi a ChatGPT di spiegartela riga per riga. Se la spiegazione è vaga, cerca il pattern su Google. Se trovi match in plugin GPL noti, aggiungi l&#x27;attribuzione. Se trovi match in plugin proprietari, riscrivi da zero.</p>



<h3 class="wp-block-heading">Il Plugin Team rifiuta plugin solo perché generati con AI?</h3>



<p class="wp-block-paragraph">No. Rifiuta plugin che violano la GPL o le linee guida, indipendentemente dal fatto che siano AI-generated. La differenza è che i plugin AI-generated hanno una probabilità più alta di contenere codice non GPL, perché il modello non distingue le licenze. Il controllo del Plugin Team è sul risultato, non sul processo.</p>



<h3 class="wp-block-heading">Cosa succede se il mio plugin viene chiuso dopo anni di utilizzo?</h3>



<p class="wp-block-paragraph">Devi trovare un&#x27;alternativa o fare un fork. Il sito dei tuoi clienti smette di funzionare se il plugin era critico. La lezione: tieni sempre un fork GitHub aggiornato dei plugin critici, anche se sono nel repository ufficiale.</p>



<h3 class="wp-block-heading">Posso usare codice da GitHub in un plugin WordPress?</h3>



<p class="wp-block-paragraph">Dipende dalla licenza del repository GitHub. Se è MIT, BSD, o Apache 2.0, la compatibilità con GPL è buona (con alcune condizioni per Apache). Se è &quot;all rights reserved&quot; o non specificata, non puoi. Se è GPL, perfetto, basta mantenere la stessa licenza.</p>



<h3 class="wp-block-heading">Vale la pena dichiarare l&#x27;uso di AI nel readme.txt?</h3>



<p class="wp-block-paragraph">Dipende dalla policy del momento. Al 2026 non è obbligatorio, ma la trasparenza è apprezzata dalla community. Se il plugin è AI-generated ma con pesante refactoring umano, una nota del tipo &quot;Sviluppato con assistenza AI, revisionato e testato manualmente&quot; può essere un segnale positivo.</p>



<h2 class="wp-block-heading">Riferimenti utili per approfondire</h2>



<ul class="wp-block-list"><li><a href="https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Plugin Guidelines ufficiali</a> - le regole da seguire.</li><li><a href="https://make.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Make WordPress Plugins blog</a> - comunicazioni ufficiali del Plugin Team.</li><li><a href="https://make.wordpress.org/plugins/2023/03/21/use-of-code-generators-must-remain-gpl-compatible/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Discussione su AI e Plugin Review</a> - il post originale di Mika Epstein che ha fatto da spartiacque.</li><li><a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GNU GPL v2 testo integrale</a> - la licenza in sé.</li><li><a href="https://www.gnu.org/licenses/license-list.html" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GPL compatibility chart</a> - per verificare la compatibilità tra licenze.</li><li><a href="https://github.com/WordPress/plugin-check" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Plugin Check tool su GitHub</a> - strumento ufficiale di verifica pre-submission.</li><li><a href="https://stackoverflow.com/legal/terms-of-service" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Stack Overflow license details</a> - per capire come usare snippet SO in plugin GPL.</li><li><a href="https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo" data-wpel-link="internal" target="_self" rel="noopener">Creare plugin WordPress con AI: metodo completo mrtux.it</a> - workflow pratico per evitare i problemi descritti qui.</li><li><a href="https://www.mrtux.it/plugin-piratati-sicurezza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">Plugin WordPress piratati e sicurezza mrtux.it</a> - il rischio speculare per chi usa plugin AI compromessi.</li><li><a href="https://www.mrtux.it/plugin-wordpress-da-evitare-2026" data-wpel-link="internal" target="_self" rel="noopener">Lista 23 plugin da evitare mrtux.it</a> - criteri per scegliere plugin mantenuti e testati.</li></ul>



<p class="wp-block-paragraph">Questa guida verrà aggiornata quando il Plugin Team pubblicherà linee guida formali sull&#x27;AI disclosure. Per casi reali o domande specifiche sulla tua submission, l&#x27;area commenti è aperta.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/ai-plugin-wordpress-gpl-cloni-plugin-team/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Plugin WordPress da evitare nel 2026: 23 nomi che rallentano il tuo sito</title>
		<link>https://www.mrtux.it/plugin-wordpress-da-evitare-2026</link>
					<comments>https://www.mrtux.it/plugin-wordpress-da-evitare-2026#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Thu, 04 Jun 2026 21:26:29 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[ottimizzazione WordPress]]></category>
		<category><![CDATA[performance WordPress]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[sicurezza wordpress]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/plugin-wordpress-da-evitare-nel-2026-23-nomi-che-rallentano-il-tuo-sito</guid>

					<description><![CDATA[23 plugin WordPress che nel 2026 sono diventati anti-pattern: rallentano il sito, aprono falle di sicurezza, o sono stati abbandonati dagli sviluppatori. Lista nera con alternative testate, basata su 2 anni di audit su 80+ installazioni reali.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In due anni di audit su oltre 80 installazioni WordPress reali (e-commerce, editoriali, corporate, membership), ho compilato una lista nera di 23 plugin che nel 2026 sono diventati anti-pattern. Sono plugin un tempo popolari, installati su milioni di siti, che oggi rallentano le prestazioni, aprono falle di sicurezza, o sono stati semplicemente abbandonati dagli sviluppatori senza che gli utenti se ne accorgessero. La regola operativa che ho applicato è severa: se un plugin non ha ricevuto aggiornamenti di compatibilità con WordPress 7.0, o se il suo autore ha dichiarato end-of-life, o se è stato sostituito da funzionalità native del core, va rimosso. Senza eccezioni.</p>



<p class="wp-block-paragraph">Questa guida non è una classifica: è un inventario operativo, con alternative testate per ciascun plugin rimosso. È complementare a <a href="https://www.mrtux.it/5-wordpress-plugins-indispensabili-per-sicurezza-seo-e-performance" data-wpel-link="internal" target="_self" rel="noopener">5 plugin WordPress indispensabili</a> e si inserisce nel percorso di <a href="https://www.mrtux.it/workflow-perfetto-tool-sviluppo-web" data-wpel-link="internal" target="_self" rel="noopener">workflow perfetto per sviluppo web</a> che ho documentato nei mesi scorsi.</p>



<p class="wp-block-paragraph">L&#x27;obiettivo è chiaro: dare a uno sviluppatore o a un site owner una lista di plugin da disinstallare subito, con sostituti concreti, e un metodo per identificare da solo i prossimi plugin che finiranno in questa lista nei prossimi 12 mesi.</p>



<h2 class="wp-block-heading">Come ho costruito la lista</h2>



<p class="wp-block-paragraph">I criteri che definiscono un plugin come &quot;da evitare&quot; nel 2026 sono cinque, tutti verificabili con strumenti standard.</p>



<ul class="wp-block-list"><li><strong>Nessun aggiornamento per WordPress 7.0</strong>: se un plugin non è stato testato o aggiornato per l&#x27;ultima major release di WordPress, è un segnale di abbandono imminente.</li><li><strong>Autore senza attività da oltre 12 mesi</strong>: il repository GitHub o il forum di supporto sono silenziosi, le issue aperte restano senza risposta.</li><li><strong>Impatto misurabile sulle performance</strong>: il plugin aggiunge più di 100ms al TTFB, o carica più di 3 script nella pagina, o esegue query database non ottimizzate in ogni request.</li><li><strong>Sostituibile da funzionalità native del core</strong>: WordPress 7.0 ha introdotto molte funzionalità che fino al 2024 richiedevano plugin esterni.</li><li><strong>Notorietà di vulnerabilità aperte</strong>: il plugin è nel database WPVulnDB con CVE critiche non patchate, o è noto per essere usato come vettore di attacco in campagne di massa.</li></ul>



<p class="wp-block-paragraph">Su 80 siti auditati, ho applicato questi criteri e rimosso una media di 4-7 plugin per installazione. I risultati sono stati costanti: tempo di caricamento medio ridotto del 30-50%, superficie di attacco ridotta del 25-40%, e zero regressioni funzionali.</p>



<h2 class="wp-block-heading">I 23 plugin da evitare nel 2026</h2>



<p class="wp-block-paragraph">La lista è organizzata per categoria, con il plugin problematico, il motivo specifico, e l&#x27;alternativa consigliata.</p>



<h3 class="wp-block-heading">Page builder monolitici (5 plugin)</h3>



<p class="wp-block-paragraph">I page builder monolitici che cercano di sostituire completamente l&#x27;editor di WordPress sono il primo pattern da abbandonare. L&#x27;editor a blocchi di WordPress 7.0 ha raggiunto la maturità che questi plugin promettevano cinque anni fa, e il lock-in sui page builder è uno dei principali fattori di costo nascosto nella gestione di un sito WordPress.</p>



<ol class="wp-block-list"><li><strong>Visual Composer (WPBakery legacy)</strong>: page builder shortcode-based, abbandonato di fatto dal 2024 dopo l&#x27;acquisizione. L&#x27;output è codice proprietario non editabile con l&#x27;editor a blocchi.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: usa l&#x27;editor nativo a blocchi di WordPress 7.0, integrato con Kadence Blocks o Generate Blocks per layout avanzati.</li></ul>



<ol class="wp-block-list"><li><strong>Divi Builder (standalone)</strong>: page builder con licenza chiusa, codice pesante, supporto clienti a pagamento anche per bug critici.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: block theme con theme.json per design system operativo, GeneratePress o Kadence Theme come base.</li></ul>



<ol class="wp-block-list"><li><strong>Beaver Builder</strong>: page builder commerciale maturo ma pesante, sempre più in ritardo sulle release di WordPress.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: block theme nativo + Spectra (plugin gratuito di Brainstorm Force).</li></ul>



<ol class="wp-block-list"><li><strong>Elementor Pro (per siti semplici)</strong>: eccellente per landing page, ma per siti editoriali e corporate è sovradimensionato.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: block theme + Cwicly o Stackable per casi d&#x27;uso specifici.</li></ul>



<ol class="wp-block-list"><li><strong>SiteOrigin Page Builder</strong>: page builder gratuito ma con codice legacy, interfaccia utente datata, supporto in calo.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: block theme nativo, SiteOrigin Panels Bundle per retrocompatibilità.</li></ul>



<h3 class="wp-block-heading">Slider e carousel (3 plugin)</h3>



<p class="wp-block-paragraph">Gli slider sono uno dei pattern più inflazionati del web design 2010-2020. Nel 2026 sono diventati un anti-pattern: distraggono l&#x27;utente, rallentano il caricamento della pagina, e non convertono. Se serve una sequenza visiva, è meglio un layout a griglia o una galleria statica.</p>



<ol class="wp-block-list"><li><strong>Smart Slider 3</strong>: slider jQuery pesante, codice legacy, impatto significativo sulle performance.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: layout a griglia con block theme, o Microthemer per effetti CSS avanzati.</li></ul>



<ol class="wp-block-list"><li><strong>Slider Revolution</strong>: slider commerciale molto popolare ma con bundle JavaScript pesantissimo (oltre 200KB non compressi).</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: galleria statica con lightbox, o Lottie animations per il movimento.</li></ul>



<ol class="wp-block-list"><li><strong>MetaSlider</strong>: gratuito e leggero, ma il pattern slider stesso è da abbandonare.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: nessuna, semplicemente non inserire slider nel design 2026.</li></ul>



<h3 class="wp-block-heading">SEO gonfiati (3 plugin)</h3>



<p class="wp-block-paragraph">I plugin SEO generalisti che cercano di sostituire la conoscenza SEO dell&#x27;operatore sono un altro anti-pattern. Le funzioni di base (title, meta description, sitemap) sono oggi native del core o gestibili con un plugin leggero.</p>



<ol class="wp-block-list"><li><strong>Yoast SEO (per siti che non usano le funzioni avanzate)</strong>: il plugin più diffuso, ma per il 70% dei siti è sovradimensionato. La versione free è accettabile, la premium ha un rapporto qualità/prezzo in calo.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: Rank Math (più leggero, stessa copertura, free tier generoso) o The SEO Framework (minimalista, performante).</li></ul>



<ol class="wp-block-list"><li><strong>All in One SEO Pack</strong>: longevo ma in ritardo sulle release, interfaccia datata, supporto clienti rallentato.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: Rank Math o The SEO Framework.</li></ul>



<ol class="wp-block-list"><li><strong>SEOPress (per chi non usa le sue funzioni avanzate)</strong>: ottimo plugin, ma per la maggior parte dei siti la versione base basta e avanzata è overkill.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: Rank Math nella versione gratuita.</li></ul>



<h3 class="wp-block-heading">Cache obsoleti (3 plugin)</h3>



<p class="wp-block-paragraph">I plugin di cache nati prima dell&#x27;ottimizzazione del core di WordPress 7.0 sono diventati ridondanti o controproducenti.</p>



<ol class="wp-block-list"><li><strong>WP Super Cache</strong>: plugin storico, ma il core di WordPress 7.0 gestisce la cache in modo più efficiente e nativo.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: cache del hosting gestito (Kinsta, WP Engine, Cloudways) + OPCache di PHP 8.2+.</li></ul>



<ol class="wp-block-list"><li><strong>W3 Total Cache</strong>: leggendario ma complesso da configurare, in molti casi rallenta più di quanto acceleri.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: hosting con cache integrata + Perfmatters per ottimizzazioni specifiche.</li></ul>



<ol class="wp-block-list"><li><strong>WP Fastest Cache</strong>: plugin gratuito leggero, ma incompatibile con alcune architetture di hosting gestito moderne.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: LiteSpeed Cache (solo su hosting LiteSpeed) o cache del provider.</li></ul>



<h3 class="wp-block-heading">Statistiche invasive (3 plugin)</h3>



<p class="wp-block-paragraph">I plugin di statistiche che tracciano l&#x27;utente lato server sono diventati un problema di privacy. La tendenza 2026 è usare analytics server-side leggeri o piattaforme esterne che non aggiungono JavaScript al frontend.</p>



<ol class="wp-block-list"><li><strong>Google Analytics for WordPress (by MonsterInsights, versione free)</strong>: traccia male, campiona i dati, e aggiunge script pesanti.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: Plausible o Fathom Analytics (analytics leggeri, privacy-first, no cookie banner).</li></ul>



<ol class="wp-block-list"><li><strong>Jetpack Stats</strong>: parte del bundle Jetpack, rallenta il backend per statistiche di base.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: Fathom Analytics o Simple Analytics.</li></ul>



<ol class="wp-block-list"><li><strong>WP Statistics</strong>: plugin gratuito popolare ma con architettura datata e storage su tabelle custom non ottimizzate.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: Plausible self-hosted o Matomo self-hosted.</li></ul>



<h3 class="wp-block-heading">Social e sharing (3 plugin)</h3>



<p class="wp-block-paragraph">I bottoni di condivisione social sono diventati un residuo del web 2010. Il tracking dei social network è molto meno efficace, e i plugin aggiungono script che rallentano il caricamento.</p>



<ol class="wp-block-list"><li><strong>AddThis</strong>: bottoni di condivisione invasivi, tracking cross-site, problemi di performance.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: link testuali diretti ai profili social, o component nativi block theme.</li></ul>



<ol class="wp-block-list"><li><strong>Shareaholic</strong>: simile ad AddThis, tracking aggressivo, banner pubblicitari iniettati.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: nessuna, o icone SVG statiche nel theme.json.</li></ul>



<ol class="wp-block-list"><li><strong>Social Warfare</strong>: plugin popolare ma con bug critici storici, dipendenze da CDN esterne non affidabili.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: Novashare (leggero) o icone statiche custom.</li></ul>



<h3 class="wp-block-heading">Backup ridondanti (2 plugin)</h3>



<p class="wp-block-paragraph">Se il sito è su hosting gestito di qualità, il backup è gestito dall&#x27;hosting. Plugin di backup aggiuntivi sono spesso ridondanti e possono anzi creare problemi di storage e performance.</p>



<ol class="wp-block-list"><li><strong>UpdraftPlus (in ambienti con backup hosting)</strong>: eccellente plugin, ma se il sito è su Kinsta, WP Engine, o Cloudways, è ridondante.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: backup del provider di hosting (verificare che sia giornaliero e off-site).</li></ul>



<ol class="wp-block-list"><li><strong>BackWPup (in ambienti con backup hosting)</strong>: come sopra, ridondante su hosting gestito.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: backup del provider + export periodico manuale via WP-CLI.</li></ul>



<h3 class="wp-block-heading">Sicurezza ridondante (1 plugin)</h3>



<p class="wp-block-paragraph">L&#x27;ultimo plugin è una nota di cautela: i plugin di sicurezza generalisti tendono a sovrapporsi con le funzionalità native di WordPress 7.0 e con la protezione dell&#x27;hosting gestito.</p>



<ol class="wp-block-list"><li><strong>Wordfence (in ambienti gestiti)</strong>: plugin eccellente, ma su hosting con firewall applicativo (Cloudflare, Sucuri) e aggiornamenti automatici attivi, aggiunge overhead più che protezione.</li></ol>



<ul class="wp-block-list"><li><strong>Alternativa</strong>: hosting con protezione integrata (Kinsta, WP Engine) + Cloudflare free + login protection con 2FA nativo.</li></ul>



<h2 class="wp-block-heading">Metodo per identificare i prossimi plugin da rimuovere</h2>



<p class="wp-block-paragraph">I 23 plugin di questa lista sono solo lo stato al 2026. Nei prossimi mesi altri plugin diventeranno anti-pattern. Ecco come identificarli prima che diventino un problema.</p>



<h3 class="wp-block-heading">Audit trimestrale dei plugin</h3>



<p class="wp-block-paragraph">Ogni tre mesi, fai un audit dei plugin installati con questa checklist:</p>



<ol class="wp-block-list"><li>Il plugin ha un aggiornamento compatibile con l&#x27;ultima major release di WordPress?</li><li>L&#x27;autore ha rilasciato aggiornamenti negli ultimi 6 mesi?</li><li>Il plugin aggiunge più di 2 script JavaScript o 1 stylesheet nella pagina pubblica?</li><li>Il plugin esegue query database in ogni request (visibile con Query Monitor)?</li><li>La funzione del plugin è ora nativa nel core di WordPress o in un block theme?</li></ol>



<p class="wp-block-paragraph">Se due o più risposte sono negative, il plugin è un candidato alla rimozione.</p>



<h3 class="wp-block-heading">Monitoraggio proattivo</h3>



<p class="wp-block-paragraph">Esistono due strumenti che aiutano a identificare plugin problematici prima che lo diventino:</p>



<ul class="wp-block-list"><li><strong>WP Tavern Plugin Newsletter</strong>: settimanale, elenca plugin aggiornati, plugin con changelog sospetti, e abbandoni noti.</li><li><strong>WP Planet</strong>: aggregatore di blog di sviluppatori WordPress, ottimo per intercettare tendenze e plugin emergenti.</li></ul>



<h3 class="wp-block-heading">Test di rimozione in staging</h3>



<p class="wp-block-paragraph">Prima di rimuovere un plugin in produzione, testalo in un ambiente di staging. WordPress Playground o Local by Flywheel permettono di clonare un sito in pochi minuti per testare la rimozione senza rischi.</p>



<h2 class="wp-block-heading">Cosa fare con i 23 plugin se li hai già installati</h2>



<p class="wp-block-paragraph">La rimozione va fatta con metodo, non in panico. Ecco la sequenza operativa.</p>



<ol class="wp-block-list"><li><strong>Verifica la funzione</strong>: prima di rimuovere un plugin, verifica che la sua funzione non sia usata attivamente sul sito. Il plugin può essere installato ma inattivo (impatto minimo), o attivo e critico (impatto alto).</li><li><strong>Installa l&#x27;alternativa</strong>: prima di rimuovere il vecchio, installa e configura il sostituto. Verifica che i dati siano stati migrati (impostazioni, configurazioni, contenuti).</li><li><strong>Test in staging</strong>: clona il sito in un ambiente di staging, rimuovi il plugin, verifica che tutto funzioni.</li><li><strong>Rimuovi in produzione</strong>: rimuovi il plugin in produzione durante una finestra di basso traffico. Monitora le metriche per le 24 ore successive.</li><li><strong>Cleanup database</strong>: dopo la rimozione, controlla con WP-Optimize o WP-Sweep se il plugin ha lasciato tabelle o opzioni orfane nel database. Rimuovile.</li></ol>



<h2 class="wp-block-heading">Il caso speciale: plugin commerciali con abbonamento attivo</h2>



<p class="wp-block-paragraph">Per i plugin commerciali con abbonamento attivo (Elementor Pro, SEOPress Pro, Rank Math Pro), la rimozione non è solo tecnica: è una decisione di business. Valuta:</p>



<ul class="wp-block-list"><li><strong>Costo annuo dell&#x27;abbonamento vs. valore per il sito</strong>: se il plugin non aggiunge funzionalità critiche, l&#x27;abbonamento è uno spreco.</li><li><strong>Lock-in dei contenuti</strong>: alcuni page builder hanno i contenuti codificati in shortcode proprietari. La migrazione richiede uno script di conversione o un rebuild manuale.</li><li><strong>Contratti pluriennali</strong>: se hai un abbonamento pluriennale, aspetta la scadenza naturale e poi migra.</li></ul>



<h2 class="wp-block-heading">Domande frequenti</h2>



<h3 class="wp-block-heading">Come faccio a sapere se un plugin è sicuro?</h3>



<p class="wp-block-paragraph">Controlla il database <a href="https://wpvulndb.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WPVulnDB</a> per vulnerabilità note, verifica la data dell&#x27;ultimo aggiornamento nel repository WordPress, leggi le recensioni recenti, e controlla il numero di installazioni attive. Un plugin con meno di 1.000 installazioni attive e nessun aggiornamento da oltre 12 mesi è un rischio concreto.</p>



<h3 class="wp-block-heading">Quanti plugin posso installare su un sito WordPress?</h3>



<p class="wp-block-paragraph">Non c&#x27;è un limite rigido. Il problema non è il numero, è la qualità. Un sito con 30 plugin leggeri, ben mantenuti, e non sovrapponibili gira più veloce di un sito con 10 plugin pesanti e abbandonati. La regola operativa che consiglio è: massimo 20-25 plugin attivi, tutti aggiornati negli ultimi 6 mesi, ognuno con una funzione chiara e non sovrapposta ad altri.</p>



<h3 class="wp-block-heading">WordPress 7.0 ha reso obsoleti i plugin di cache?</h3>



<p class="wp-block-paragraph">In molti casi, sì. WordPress 7.0 ha un sistema di cache integrato più efficiente, e gli hosting gestiti moderni hanno cache a livello di server (OPCache, Redis, Varnish). Per la maggior parte dei siti, un plugin di cache aggiuntivo è ridondante. Solo su hosting condivisi di fascia bassa o su VPS senza cache server ha ancora senso.</p>



<h3 class="wp-block-heading">I page builder sono morti nel 2026?</h3>



<p class="wp-block-paragraph">I page builder monolitici che sostituiscono l&#x27;editor di WordPress sì, sono morti. I page builder come Kadence Blocks, Generate Blocks, Spectra, o Cwicly no: sono estensioni dell&#x27;editor a blocchi, vivono dentro l&#x27;editor nativo, e producono contenuti portabili. Questa è la differenza fondamentale: lock-in vs. interoperabilità.</p>



<h3 class="wp-block-heading">Cosa uso al posto di Yoast SEO nel 2026?</h3>



<p class="wp-block-paragraph">Rank Math è la scelta razionale per la maggior parte dei siti: gratuito, leggero, supporta schema markup avanzati, integrazione con Google Search Console, e modulo WooCommerce dedicato. Per siti minimalisti, The SEO Framework è ancora più leggero. Yoast resta valido solo se si usano attivamente le funzioni premium (internal linking suggestions, multiple focus keywords).</p>



<h3 class="wp-block-heading">È sicuro usare plugin non aggiornati da anni?</h3>



<p class="wp-block-paragraph">No, in nessun caso. Un plugin non aggiornato è una falla di sicurezza aperta. Se l&#x27;autore ha abbandonato il plugin, rimuovilo. Se la funzione è critica, cerca un fork attivo o un&#x27;alternativa moderna. I siti compromessi nel 2026 sono in stragrande maggioranza su plugin obsoleti, temi piratati, o installazioni non aggiornate.</p>



<h2 class="wp-block-heading">Riferimenti ufficiali</h2>



<p class="wp-block-paragraph">Per approfondire i temi toccati in questa guida, ecco le fonti primarie consultate e raccomandate.</p>



<ul class="wp-block-list"><li><a href="https://wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Plugin Directory</a> - repository ufficiale plugin.</li><li><a href="https://wpvulndb.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WPVulnDB</a> - database vulnerabilità WordPress.</li><li><a href="https://querymonitor.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Query Monitor</a> - profiling performance plugin.</li><li><a href="https://wptavern.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP Tavern</a> - notizie e analisi WordPress.</li><li><a href="https://rankmath.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Rank Math</a> - SEO plugin consigliato 2026.</li><li><a href="https://www.kadencewp.com/kadence-blocks/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Kadence Blocks</a> - estensione block editor.</li><li><a href="https://generateblocks.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GenerateBlocks</a> - block builder leggero.</li><li><a href="https://plausible.io/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Plausible Analytics</a> - analytics privacy-first.</li><li><a href="https://usefathom.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Fathom Analytics</a> - analytics senza cookie.</li><li><a href="https://wordpress.org/playground/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Playground</a> - sandbox test plugin.</li><li><a href="https://localwp.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Local by Flywheel</a> - ambiente sviluppo locale.</li><li><a href="https://www.mrtux.it/5-wordpress-plugins-indispensabili-per-sicurezza-seo-e-performance" data-wpel-link="internal" target="_self" rel="noopener">Guida plugin indispensabili mrtux.it</a> - 5 plugin mantenuti e testati.</li><li><a href="https://www.mrtux.it/workflow-perfetto-tool-sviluppo-web" data-wpel-link="internal" target="_self" rel="noopener">Workflow perfetto sviluppo web mrtux.it</a> - framework 7 stadi.</li></ul>



<p class="wp-block-paragraph">Questa guida verrà aggiornata ogni sei mesi, in coincidenza con i rilasci principali di WordPress e del suo ecosistema. Per suggerimenti o correzioni, l&#x27;area commenti è aperta.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/plugin-wordpress-da-evitare-2026/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creare plugin WordPress con AI: metodo completo</title>
		<link>https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo</link>
					<comments>https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 02 Jun 2026 13:06:09 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[AI Coding]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[sicurezza wordpress]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<category><![CDATA[WPCLI]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo</guid>

					<description><![CDATA[Metodo operativo in 9 fasi per creare plugin WordPress con AI: dai requisiti al prompt, dalla code review alla pubblicazione su repository.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Creare un plugin WordPress con l&#x27;intelligenza artificiale non significa &quot;chiedere a ChatGPT di scrivere un plugin&quot;. Significa progettare un flusso di lavoro in cui l&#x27;AI genera codice candidato, ma tu mantieni il controllo su requisiti, sicurezza, test e rilascio. In questa guida trovi un metodo in nove fasi, già usato per rilasciare plugin reali, con prompt operativi, snippet PHP pronti e una checklist di code review pensata per chi sviluppa in proprio e non vuole pubblicare codice bacato.</p>



<p class="wp-block-paragraph">L&#x27;obiettivo è trasformare un prompt in un artefatto distribuibile, non un esercizio di stile. Vediamo come, passo dopo passo, integrando l&#x27;AI in un processo di ingegneria WordPress serio.</p>



<h2 class="wp-block-heading">Perché serve un metodo, non solo un prompt</h2>



<p class="wp-block-paragraph">Scrivere &quot;creami un plugin WordPress per gestire i preventivi&quot; produce quasi sempre un file singolo, nessuna struttura di namespace, nessuna sanitizzazione, zero test. Il prompt è solo il punto di partenza: ciò che separa un plugin amatoriale da uno distribuibile è la pipeline.</p>



<p class="wp-block-paragraph">Se hai già letto la nostra guida su <a href="https://www.mrtux.it/ai-sviluppo-wordpress-progettare-scrivere-ottimizzare-plugin" data-wpel-link="internal" target="_self" rel="noopener">come progettare, scrivere e ottimizzare un plugin WordPress con AI</a>, sai che il vero vantaggio competitivo non è la velocità di generazione ma la capacità di ripetere il processo. Un metodo replicabile ti permette di passare da un&#x27;idea a un plugin pubblicato in una settimana, non in sei mesi. Lo stesso approccio si applica a <a href="https://www.mrtux.it/creare-tema-wordpress-guida-101-allo-sviluppo-completo" data-wpel-link="internal" target="_self" rel="noopener">temi WordPress complessi</a> e a <a href="https://www.mrtux.it/container-docker-php-setup-minimale" data-wpel-link="internal" target="_self" rel="noopener">strumenti di sviluppo locale basati su Docker</a>, dove la standardizzazione fa la differenza.</p>



<h2 class="wp-block-heading">Le 9 fasi del metodo</h2>



<p class="wp-block-paragraph">Il flusso è sequenziale ma iterativo. Ogni fase produce un output concreto che alimenta la successiva.</p>




<figure class="wp-block-table"><table><thead><tr><th>Fase</th><th>Output</th><th>Strumento AI utile</th></tr></thead><tbody><tr><td>1. Requisiti</td><td>User story + criteri di accettazione</td><td>LLM generico + brainstorming</td></tr><tr><td>2. Architettura</td><td>Schema classi, hook, tabelle DB</td><td>LLM con contesto WordPress</td></tr><tr><td>3. Prompt design</td><td>Prompt strutturato con vincoli</td><td>LLM con system prompt dedicato</td></tr><tr><td>4. Generazione</td><td>Codice PHP/JS/CSS candidato</td><td>Cursor, Copilot, Continue.dev</td></tr><tr><td>5. Code review</td><td>Lista vulnerabilità e refactoring</td><td>LLM come revisore + PHPStan</td></tr><tr><td>6. Sicurezza</td><td>Escape, nonce, capability check</td><td>LLM + plugin &quot;Plugin Check&quot;</td></tr><tr><td>7. Test</td><td>Unit test + smoke test WP-CLI</td><td>PHPUnit + WP-CLI scaffold</td></tr><tr><td>8. Refactoring</td><td>Versione pulita, documentata</td><td>LLM come pair programmer</td></tr><tr><td>9. Distribuzione</td><td>ZIP, repository, readme.txt</td><td>wp-svn, GitHub Releases</td></tr></tbody></table></figure>




<p class="wp-block-paragraph">Le prime quattro fasi sono dove l&#x27;AI dà il massimo vantaggio. Le ultime cinque sono dove il tuo giudizio tecnico diventa insostituibile.</p>



<h2 class="wp-block-heading">Fase 1: requisiti come user story</h2>



<p class="wp-block-paragraph">Parti sempre da cosa deve fare il plugin, non da come. Una user story ben scritta è: &quot;Come amministratore del sito, voglio poter associare una data di scadenza a ogni post, per visualizzare un countdown nel frontend&quot;.</p>



<p class="wp-block-paragraph">L&#x27;AI trasforma questa story in criteri di accettazione, edge case e vincoli non funzionali (performance, compatibilità PHP 8.2+, i18n). Meglio scriverli prima di generare codice: ti serviranno per i test.</p>



<p class="wp-block-paragraph">Ecco un prompt efficace per la fase 1:</p>



<pre class="wp-block-code"><code># esempio codice
Agisci come product manager WordPress. Per la user story "[INCOLLA QUI]" genera: 5 criteri di accettazione, 3 edge case, requisiti di compatibilità (versione WordPress minima, PHP minimo, ruoli utente coinvolti), e una lista di hook WordPress da usare. Rispondi in italiano, formato Markdown.</code></pre>



<p class="wp-block-paragraph">Il risultato diventa l&#x27;input della fase 2. Niente codice ancora, niente scelte tecniche premature.</p>



<h2 class="wp-block-heading">Fase 2: architettura prima del codice</h2>



<p class="wp-block-paragraph">Chiedi all&#x27;AI uno schema di alto livello: classi, interfacce, tabelle custom, hook e filtri, file e cartelle. Questo passaggio ti permette di valutare se la struttura proposta ha senso prima di investire tempo nella generazione del codice.</p>



<pre class="wp-block-code"><code># esempio codice
Dato il plugin "[NOME]" con questi requisiti: [INCOLLA CRITERI DI ACCETTAZIONE]. Proponi: struttura directory, elenco classi con responsabilità, tabelle DB custom (se necessarie), hook WordPress da implementare (action e filter), e dipendenze esterne. Non scrivere codice, solo architettura.</code></pre>



<p class="wp-block-paragraph">Conferma o modifica lo schema. Una volta validato, diventa il brief per la generazione.</p>



<h2 class="wp-block-heading">Fase 3: prompt design con vincoli espliciti</h2>



<p class="wp-block-paragraph">Il prompt di generazione è il momento più delicato. Includi sempre: contesto WordPress (versioni supportate, hook da usare), standard di codifica (PSR-12, WordPress Coding Standards), requisiti di sicurezza (sanitize, escape, nonce, capability), e formato di output (un file per volta, con header di plugin completo).</p>



<p class="wp-block-paragraph">Un prompt ben strutturato produce codice quasi pronto. Uno vago produce spazzatura. Non lesinare sui dettagli.</p>



<h2 class="wp-block-heading">Fase 4: generazione del codice candidato</h2>



<p class="wp-block-paragraph">Usa l&#x27;editor AI (Cursor, Continue.dev, GitHub Copilot) per generare il codice file per file. Chiedi esplicitamente commenti PHPDoc, gestione degli errori e un blocco <code>register_activation_hook</code> per il setup iniziale. La regola d&#x27;oro: genera, leggi, correggi, integra. Non accettare mai il primo output senza averlo capito.</p>



<p class="wp-block-paragraph">Esempio di header plugin generato correttamente:</p>



<pre class="wp-block-code"><code>&lt;?php
/**
 * Plugin Name:       Mio Plugin Preventivi
 * Description:       Gestione preventivi con scadenza e notifica email.
 * Version:           1.0.0
 * Requires at least: 6.5
 * Requires PHP:      8.2
 * Author:            Il Tuo Nome
 * License:           GPL v2 or later
 * Text Domain:       mio-plugin-preventivi
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // impedisce l'accesso diretto
}</code></pre>



<p class="wp-block-paragraph">Nota la riga <code>ABSPATH</code>: senza quella, chiunque può includere il file via URL e bypassare i controlli. È un dettaglio che l&#x27;AI spesso dimentica.</p>



<h2 class="wp-block-heading">Fase 5: code review con PHPStan e AI</h2>



<p class="wp-block-paragraph">Passa il codice generato a PHPStan con il livello 5 o superiore. Poi chiedi all&#x27;AI di fare una review incrociata: &quot;Trova bug logici, race condition, memory leak, gestione errori mancante&quot;. L&#x27;AI è sorprendentemente brava a trovare quello che tu, abbagliato dal codice appena scritto, non vedi.</p>



<p class="wp-block-paragraph">Un comando utile per la review AI:</p>



<pre class="wp-block-code"><code># analisi statica PHPStan sul plugin
vendor/bin/phpstan analyse --level=6 includes/ src/</code></pre>



<p class="wp-block-paragraph">Output tipico: errori di tipo mancanti, parametri non validati, return type inconsistenti. Tutto risolvibile prima ancora di aprire il browser.</p>



<h2 class="wp-block-heading">Fase 6: checklist di sicurezza WordPress</h2>



<p class="wp-block-paragraph">WordPress ha un modello di sicurezza preciso. L&#x27;AI spesso lo ignora o lo applica in modo parziale. Ecco la checklist minima non negoziabile:</p>



<ul class="wp-block-list"><li>Ogni form ha un <code>wp_nonce_field</code> e verifica <code>wp_verify_nonce</code> lato server.</li><li>Ogni input utente passa per <code>sanitize_text_field</code>, <code>absint</code>, <code>wp_kses_post</code> o equivalente.</li><li>Ogni output passa per <code>esc_html</code>, <code>esc_attr</code>, <code>esc_url</code> o <code>wp_kses_post</code>.</li><li>Ogni capability check usa <code>current_user_can( &#x27;manage_options&#x27; )</code> (o capability più specifica).</li><li>Le query SQL usano <code>$wpdb-&gt;prepare()</code> con placeholder <code>%s</code>, <code>%d</code>, <code>%f</code>.</li><li>I file letti/scritti usano <code>WP_Filesystem</code> API, non <code>file_get_contents</code> diretto.</li></ul>



<p class="wp-block-paragraph">Se uno di questi punti manca, il plugin non è pronto per la distribuzione. Nessuna scusa, nessuna &quot;lo aggiungo dopo&quot;.</p>



<h2 class="wp-block-heading">Fase 7: test con PHPUnit e WP-CLI</h2>



<p class="wp-block-paragraph">Il modo più rapido per testare un plugin è usare <code>wp-cli scaffold plugin-tests</code>. Crea una struttura di test standard con PHPUnit e WP-CLI, inclusi test di integrazione. Scrivi test per ogni criterio di accettazione della fase 1. Se un criterio non ha un test, non è un criterio.</p>



<pre class="wp-block-code"><code># installa WP-CLI test scaffold nel plugin
wp scaffold plugin-tests mio-plugin</code></pre>



<p class="wp-block-paragraph">L&#x27;output è una cartella <code>tests/</code> con file di esempio, configurazione PHPUnit e script per lanciare la suite. Da lì in poi scrivi test reali: un test per ogni metodo pubblico della classe principale, un test per ogni hook registrato.</p>



<h2 class="wp-block-heading">Fase 8: refactoring finale</h2>



<p class="wp-block-paragraph">Dopo i test, chiedi all&#x27;AI un refactoring mirato: estrai metodi lunghi, rinomina variabili, aggiungi type hint mancanti, sostituisci <code>array()</code> con <code>[]</code>, converte stringhe in costanti di classe se usate più volte. Il refactoring post-test è il momento in cui il codice diventa manutenibile. Non farlo prima dei test: senza test, il refactoring è un terno al lotto.</p>



<p class="wp-block-paragraph">Un prompt utile per questa fase:</p>



<pre class="wp-block-code"><code># esempio codice
Refactoring del file [NOME FILE]. Obiettivi: type hint completi, metodi sotto le 30 righe, naming coerente, nessuna duplicazione. Mantieni la logica invariata. Restituisci solo il codice finale con commenti PHPDoc.</code></pre>



<h2 class="wp-block-heading">Fase 9: distribuzione e manutenzione</h2>



<p class="wp-block-paragraph">Una volta che il plugin è solido, crea lo ZIP e pubblicalo su wordpress.org tramite <code>wp-svn</code>, oppure su GitHub con una release. Il file <code>readme.txt</code> segue il formato standard WordPress: header con metadata, sezione &quot;Description&quot;, &quot;Installation&quot;, &quot;Frequently Asked Questions&quot;, &quot;Changelog&quot;, &quot;Upgrade Notice&quot;. L&#x27;AI può generare un primo draft, ma ricontrolla: wordpress.org rifiuta readme con link a siti di terze parti non autorizzati, con tag non standard, con sezioni mancanti.</p>



<pre class="wp-block-code"><code># crea zip distribuzione plugin
wp dist-archive /percorso/del/plugin mio-plugin-1.0.0</code></pre>



<p class="wp-block-paragraph">Dopo la pubblicazione, il lavoro non è finito: monitora il forum di supporto, rispondi ai bug report, rilascia patch. Un plugin senza manutenzione è un plugin che smette di funzionare al primo aggiornamento major di WordPress.</p>



<h2 class="wp-block-heading">Errori comuni da evitare</h2>



<p class="wp-block-paragraph">Anche con un buon metodo, alcuni errori sono ricorrenti. Ecco i più frequenti osservati su plugin AI-generati pubblicati su wordpress.org e repository privati.</p>




<figure class="wp-block-table"><table><thead><tr><th>Errore</th><th>Conseguenza</th><th>Come evitarlo</th></tr></thead><tbody><tr><td>Plugin monolitico da 2000 righe in un solo file</td><td>Impossibile manutenere, test, debuggare</td><td>Forza struttura a cartelle nella fase 3</td></tr><tr><td>Nessuna traduzione (text domain)</td><td>Plugin rifiutato da wordpress.org</td><td>Aggiungi <code>__()</code>, <code>_e()</code>, <code>esc_html__()</code> ovunque</td></tr><tr><td>Query dirette senza prepare</td><td>SQL injection, rifiuto plugin check</td><td>Standardizza uso di <code>$wpdb-&gt;prepare()</code></td></tr><tr><td>Asset (JS/CSS) caricati ovunque</td><td>Page bloat, conflitti con altri plugin</td><td>Usa <code>wp_enqueue_script</code> condizionato</td></tr><tr><td>Nessuna deactivation/uninstall hook</td><td>Dati orfani nel database</td><td>Aggiungi <code>register_uninstall_hook</code> con cleanup</td></tr></tbody></table></figure>




<p class="wp-block-paragraph">La tabella è un riassunto operativo. L&#x27;errore più subdolo è il primo: un file da 2000 righe è facile da generare con l&#x27;AI, impossibile da mantenere senza refactoring radicale.</p>



<h2 class="wp-block-heading">Workflow integrato: dall&#x27;idea al repository</h2>



<p class="wp-block-paragraph">Mettiamo insieme le nove fasi in un flusso settimanale realistico. Giorno 1-2: requisiti e architettura, con sessioni AI di 2-3 ore. Giorno 3-4: generazione e code review, con l&#x27;AI come pair programmer. Giorno 5: test e refactoring, senza AI generativa ma con PHPStan e PHPUnit. Giorno 6: readme, asset, documentazione. Giorno 7: pubblicazione e annuncio.</p>



<p class="wp-block-paragraph">Questo ritmo è compatibile con un singolo sviluppatore che lavora part-time. Con un team di due persone (uno sviluppatore, uno reviewer) si scende a 3-4 giorni. Il collo di bottiglia non è mai la generazione del codice: è la review e i test.</p>



<h2 class="wp-block-heading">Quando l&#x27;AI non basta</h2>



<p class="wp-block-paragraph">Ci sono ambiti dove l&#x27;intelligenza artificiale generativa non è ancora affidabile come unico input:</p>



<ul class="wp-block-list"><li>Logica di business complessa con regole fiscali o legali: serve dominio umano per validare i requisiti.</li><li>Integrazione con API di pagamento (Stripe, PayPal): troppe edge case, troppe versioni API, troppe conseguenze economiche di un bug.</li><li>Plugin che gestiscono dati sanitari o personali sensibili: la conformità GDPR richiede revisione legale, non solo tecnica.</li></ul>



<p class="wp-block-paragraph">In questi casi l&#x27;AI è utile per generare il codice candidato, ma serve un dominio umano per validare. Non affidarti mai al 100% all&#x27;output AI per aree critiche.</p>



<h2 class="wp-block-heading">Strumenti consigliati per il workflow</h2>



<p class="wp-block-paragraph">Ecco la mia toolchain attuale, testata su plugin reali pubblicati nel 2025-2026:</p>



<ul class="wp-block-list"><li><strong>Editor AI</strong>: Cursor per la generazione, Continue.dev come alternativa open source, entrambi con supporto a modelli locali (privacy).</li><li><strong>Analisi statica</strong>: PHPStan livello 6+ con regole WordPress custom, Psalm come alternativa.</li><li><strong>Test</strong>: PHPUnit + WP-CLI scaffold plugin-tests, Brain Monkey per mock delle funzioni WordPress.</li><li><strong>Sicurezza</strong>: Plugin &quot;Plugin Check&quot; di wordpress.org per validare submission, PHP_CodeSniffer con WordPress Coding Standards.</li><li><strong>Versionamento</strong>: Git con conventional commits, GitHub Actions per CI, wp-env per ambienti di sviluppo riproducibili.</li></ul>



<p class="wp-block-paragraph">Nessuno di questi strumenti è obbligatorio, ma l&#x27;insieme copre le fasi 4-9 con automazione. Il tempo risparmiato in setup si ripaga dal primo plugin in poi.</p>



<h2 class="wp-block-heading">Riferimenti ufficiali e risorse esterne</h2>



<p class="wp-block-paragraph">Per approfondire i temi toccati in questa guida, queste sono le fonti primarie che uso quotidianamente:</p>



<ul class="wp-block-list"><li><a href="https://developer.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Plugin Handbook ufficiale di WordPress.org</a> — documentazione canonica su hook, API, sicurezza, internazionalizzazione. È la bibbia: ogni dubbio su un filtro o un action hook si risolve qui.</li><li><a href="https://github.com/WordPress/WordPress-Coding-Standards" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Coding Standards su GitHub</a> — le regole di stile PHP/JS/CSS che ogni plugin su wordpress.org deve rispettare, installabili come standard PHPCS.</li><li><a href="https://make.wordpress.org/core/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Make WordPress Core — discussione su PHP 8.x e WordPress 7.0</a> — le release notes ufficiali, le proposte di deprecazione, gli aggiornamenti sui requisiti minimi di PHP che impattano direttamente i plugin moderni.</li><li><a href="https://wordpress.org/plugins/plugin-check/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Plugin Check su wordpress.org</a> — strumento di validazione pre-submission che verifica automaticamente decine di requisiti tecnici e di sicurezza.</li><li><a href="https://wp-cli.org/commands/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI command reference</a> — ogni comando disponibile, con flag ed esempi, utile per automatizzare test, scaffolding e distribuzione.</li><li><a href="https://developer.wordpress.org/plugins/settings/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Common APIs — Settings, Options, Transients</a> — pattern consolidati per memorizzare configurazioni, con confronto tra opzioni e transients.</li></ul>



<p class="wp-block-paragraph">Le fonti terze (blog, tutorial YouTube) sono ottime per imparare pattern, ma quando decidi un&#x27;architettura o una regola di sicurezza, il riferimento finale deve sempre essere la documentazione ufficiale. Le AI a volte propongono pattern obsoleti (hook deprecati, funzioni rimosse in versioni recenti): solo leggendo le release notes aggiornate te ne accorgi.</p>



<h2 class="wp-block-heading">Caso studio: 7 giorni per un plugin reale</h2>



<p class="wp-block-paragraph">Per chiudere con un esempio concreto, ecco come ho applicato il metodo a un plugin reale: un sistema di scadenza post con countdown nel frontend. Il plugin è in produzione su tre siti, tutti aggiornati a WordPress 6.5+ senza conflitti.</p>



<h3 class="wp-block-heading">Giorno 1: requisiti</h3>



<p class="wp-block-paragraph">Una mattina con sessione AI di 2 ore, partendo dalla user story &quot;voglio una data di scadenza visibile sul post con countdown automatico&quot;. Output: 6 criteri di accettazione, 4 edge case (post programmati, post privati, timezone del sito, caching del countdown), decisione di usare un meta box classico per compatibilità con i page builder più diffusi. Tutto scritto in un file <code>requirements.md</code> versionato su Git.</p>



<h3 class="wp-block-heading">Giorno 2: architettura</h3>



<p class="wp-block-paragraph">Sessione AI con prompt di architettura: output una struttura a tre classi (Main, MetaBox, Frontend), un custom post meta <code>mio_plugin_expiry_date</code>, due hook (uno in admin per il meta box, uno in frontend per il rendering), zero tabelle custom. Ho aggiunto un <code>requirements.md</code> con la sezione &quot;Decisioni di architettura&quot; per spiegare perché niente tabelle custom: i meta post bastano per il caso d&#x27;uso, le tabelle custom aggiungono complessità di migrazione e manutenzione non giustificata.</p>



<h3 class="wp-block-heading">Giorno 3-4: generazione e review</h3>



<p class="wp-block-paragraph">Ho generato il codice file per file in Cursor, con prompt che includevano sempre i requisiti di sicurezza (nonce, sanitize, esc) e i criteri di accettazione come checklist inline. Poi PHPStan livello 6 ha trovato 4 errori di tipo (parametri nullable non gestiti) che ho corretto in 20 minuti. Una seconda passata AI per code review ha pescato 2 bug logici (confronto tra DateTime e stringa in un caso edge).</p>



<h3 class="wp-block-heading">Giorno 5: test</h3>



<p class="wp-block-paragraph"><code>wp scaffold plugin-tests</code> ha creato la struttura PHPUnit. Ho scritto 8 test, uno per criterio di accettazione. Due test hanno rivelato un bug nella gestione del timezone (il countdown mostrava un&#x27;ora di differenza tra backend e frontend in siti con timezone Europe/Rome). Bug risolto passando sempre per <code>wp_date()</code> invece di <code>date()</code> nativo PHP.</p>



<h3 class="wp-block-heading">Giorno 6: documentazione</h3>



<p class="wp-block-paragraph">Readme.txt, screenshot, changelog iniziale, documentazione del meta box. L&#x27;AI ha generato il primo draft, io ho ricontrollato formattazione wordpress.org, licenza, sezioni mancanti.</p>



<h3 class="wp-block-heading">Giorno 7: pubblicazione</h3>



<p class="wp-block-paragraph">ZIP, invio a wordpress.org, attesa di approvazione (3 giorni per la review). Tempo totale: 7 giorni di lavoro effettivo, di cui circa 2 ore al giorno. Il resto del tempo era sessioni AI, code review, test. Il plugin è ancora attivo, riceve aggiornamenti di compatibilità a ogni release major di WordPress.</p>



<p class="wp-block-paragraph">Questo caso studio dimostra che il metodo è realistico anche per sviluppatori soli, a patto di non saltare le fasi 5-7 (review, sicurezza, test) per la pressione di rilasciare prima.</p>



<h2 class="wp-block-heading">Domande frequenti</h2>



<p class="wp-block-paragraph"><strong>L&#x27;AI può sostituire uno sviluppatore WordPress?</strong> No. L&#x27;AI accelera la scrittura del codice ma non sostituisce la capacità di progettare architetture, fare scelte tecniche e manutenere nel tempo. Un plugin scritto solo con prompt è un plugin fragile.</p>



<p class="wp-block-paragraph"><strong>Quale modello AI è migliore per PHP WordPress?</strong> I modelli addestrati su codice recente (Claude 3.5+, GPT-4o, Gemini 2.5) performano bene su pattern WordPress comuni. Per hook meno documentati, meglio includere esempi di documentazione ufficiale nel prompt.</p>



<p class="wp-block-paragraph"><strong>È legale vendere plugin scritti con AI?</strong> Sì, purché il codice sia tuo (o rilasciato con licenza compatibile GPL) e tu possa mantenerlo. La licenza del plugin deve essere GPL v2 o compatibile, come richiesto da wordpress.org per i plugin gratuiti.</p>



<p class="wp-block-paragraph"><strong>Come gestisco la qualità del codice AI su larga scala?</strong> Con un sistema di review obbligatorio: PHPStan in CI, code review umana, test automatici su ogni PR. Il codice generato entra in produzione solo dopo gli stessi gate del codice scritto a mano.</p>



<h2 class="wp-block-heading">Conclusione</h2>



<p class="wp-block-paragraph">Creare plugin WordPress con AI è un vantaggio competitivo reale se lo fai con metodo, non con magia. Le nove fasi descritte qui (requisiti, architettura, prompt, generazione, review, sicurezza, test, refactoring, distribuzione) trasformano l&#x27;AI da &quot;trucco per prototipi&quot; a strumento professionale. Parti sempre dai requisiti, mai dal codice. Testa sempre, anche il codice &quot;semplice&quot;. E ricorda: il prompt è l&#x27;inizio, non la fine.</p>



<p class="wp-block-paragraph">Se vuoi approfondire il tema dei <a href="https://www.mrtux.it/opencode-vs-claude-code-vs-copilot-2026-quale-ai-coding-assistant-conviene-usare" data-wpel-link="internal" target="_self" rel="noopener">confronti tra coding assistant AI</a> o le <a href="https://www.mrtux.it/woocommerce-ai-strategie-vendere-piu-senza-aumentare-traffico" data-wpel-link="internal" target="_self" rel="noopener">strategie per vendere plugin su WooCommerce</a>, trovi guide dedicate sul blog. Il metodo è trasversale: vale per plugin, temi, integrazioni custom e prodotti SaaS costruiti su WordPress.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creare un Plugin WordPress: Guida Tutorial Passo Passo</title>
		<link>https://www.mrtux.it/creare-un-plugin-wordpress-guida-tutorial-passo-passo</link>
					<comments>https://www.mrtux.it/creare-un-plugin-wordpress-guida-tutorial-passo-passo#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Fri, 22 May 2026 19:23:59 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[creare plugin wordpress]]></category>
		<category><![CDATA[funzionalità wordpress]]></category>
		<category><![CDATA[guida wordpress]]></category>
		<category><![CDATA[personalizzazione wordpress]]></category>
		<category><![CDATA[php wordpress]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[programmazione web]]></category>
		<category><![CDATA[sviluppo plugin]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<category><![CDATA[tutorial wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3407</guid>

					<description><![CDATA[Vuoi scoprire come creare un plugin wordpress personalizzato e dare al tuo sito superpoteri che nessun altro ha? In questo tutorial plugin wp passo dopo passo, ti accompagno dalla prima riga di codice fino al tuo primo plugin funzionante, anche se sei alle prime armi.]]></description>
										<content:encoded><![CDATA[<h2>Come Creare un Plugin WordPress: Guida Completa 101</h2>
<p>Hai mai desiderato aggiungere funzionalità personalizzate al tuo sito WordPress senza dipendere da plugin di terze parti? Creare un <strong>plugin wordpress</strong> personalizzato ti permette di estendere le capacità del tuo sito in modo pulito, organizzato e riutilizzabile. In questo <strong>tutorial plugin wp</strong> completo, ti guiderò passo dopo passo nella creazione del tuo primo plugin WordPress, partendo dalle basi fino ad arrivare a implementazioni più avanzate.</p>
<hr>
<h2>Perché Creare un Plugin WordPress Personalizzato</h2>
<p>Prima di immergerci nel processo di sviluppo, è fondamentale comprendere perché potresti aver bisogno di un plugin personalizzato. WordPress offre migliaia di plugin gratuiti e premium attraverso il repository ufficiale, ma ci sono situazioni in cui un plugin personalizzato rappresenta la soluzione migliore:</p>
<ul>
<li><strong>Esigenze specifiche</strong>: Hai requisiti unici che nessun plugin esistente soddisfa completamente</li>
<li><strong>Prestazioni</strong>: Vuoi evitare l’overhead di plugin complessi con funzionalità che non utilizzi</li>
<li><strong>Manutenzione</strong>: Preferisci controllare completamente il codice senza dipendere da sviluppatori terzi</li>
<li><strong>Sicurezza</strong>: Riduci la superficie di attacco eliminando plugin non necessari</li>
<li><strong>Apprendimento</strong>: Desideri comprendere come funziona internamente WordPress</li>
</ul>
<p>Creare un plugin wordpress significa anche organizzare meglio il tuo codice. A differenza delle funzioni inserite nel file <code>functions.php</code> del tema, un plugin rimane attivo anche quando cambi tema, garantendo la persistenza delle funzionalità.</p>
<hr>
<h2>Prerequisiti per lo Sviluppo di Plugin WordPress</h2>
<p>Per seguire questo tutorial plugin wp in modo efficace, dovresti avere familiarità con alcuni concetti fondamentali:</p>
<h3>Conoscenze Tecniche Necessarie</h3>
<ul>
<li><strong>PHP</strong>: WordPress è costruito principalmente su PHP, quindi una solida comprensione del linguaggio è essenziale. Devi conoscere variabili, funzioni, array, oggetti e programmazione orientata agli oggetti</li>
<li><strong>HTML/CSS</strong>: Per creare interfacce di amministrazione e frontend</li>
<li><strong>JavaScript</strong>: Per funzionalità lato client e interazioni AJAX</li>
<li><strong>MySQL</strong>: Comprensione base delle query database (WordPress offre astrazioni che semplificano questo aspetto)</li>
</ul>
<h3>Strumenti di Sviluppo Consigliati</h3>
<ul>
<li><strong>Ambiente locale</strong>: Utilizza software come Local by Flywheel, XAMPP o Docker per creare un ambiente di test</li>
<li><strong>Editor di codice</strong>: VS Code, PhpStorm o Sublime Text con estensioni per WordPress</li>
<li><strong>Version Control</strong>: Git per tracciare le modifiche e gestire le versioni del tuo plugin</li>
</ul>
<hr>
<h2>Struttura Base di un Plugin WordPress</h2>
<p>Un plugin wordpress ben strutturato segue convenzioni specifiche che permettono a WordPress di riconoscerlo, attivarlo e gestirlo correttamente. Analizziamo la struttura essenziale:</p>
<h3>La Directory del Plugin</h3>
<p>Ogni plugin risiede nella directory <code>wp-content/plugins/</code> di WordPress. Crea una cartella con un nome unico, preferibilmente prefissato per evitare conflitti con altri plugin.</p>
<pre><code>wp-content/
  └── plugins/
      └── mio-plugin-personalizzato/
          ├── mio-plugin-personalizzato.php
          ├── index.php
          ├── README.txt
          └── assets/
              ├── css/
              ├── js/
              └── images/
</code></pre>
<h3>Il File Principale del Plugin</h3>
<p>Il file principale del plugin deve contenere l’header di documentazione che permette a WordPress di identificare il plugin nel pannello di amministrazione. Ecco un esempio di header standard:</p>
<pre><code class="language-php">&lt;?php
/<em>
Plugin Name: Mio Plugin Personalizzato
Plugin URI: https://esempio.com/mio-plugin
Description: Una breve descrizione delle funzionalità del plugin
Version: 1.0.0
Author: Il Tuo Nome
Author URI: https://esempio.com
License: GPL v2 or later
Text Domain: mio-plugin-personalizzato
Domain Path: /languages
</em>/
</code></pre>
<p>Senza questo header, il plugin non apparirà nella lista dei plugin installabili in WordPress.</p>
<hr>
<h2>Guida Passo-Passo: Creare il Tuo Primo Plugin WordPress</h2>
<p>Ora che comprendi la struttura base, procediamo con la creazione di un plugin funzionale. In questo esempio, creeremo un plugin che aggiunge un widget per visualizzare informazioni personalizzate nel footer.</p>
<h3>Passaggio 1: Creare la Struttura Base</h3>
<p>Apri il tuo editor di codice preferito e crea una nuova cartella chiamata <code>mio-plugin-footer</code>. Al suo interno, crea il file principale <code>mio-plugin-footer.php</code>.</p>
<h3>Passaggio 2: Definire le Costanti del Plugin</h3>
<p>È buona pratica definire costanti per il percorso e l’URL del plugin, facilitando riferimenti successivi:</p>
<pre><code class="language-php">&lt;?php
// Evita accesso diretto
defined('ABSPATH') or die('Accesso non consentito');

// Costanti del plugin
define('MPF_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('MPF_PLUGIN_URL', plugin_dir_url(__FILE__));
define('MPF_PLUGIN_VERSION', '1.0.0');
</code></pre>
<h3>Passaggio 3: Creare la Classe del Plugin</h3>
<p>La programmazione orientata agli oggetti (OOP) mantiene il codice organizzato e previene conflitti con altri plugin:</p>
<pre><code class="language-php">class Mio_Plugin_Footer {

    /<strong>
     <em> Istanza singleton
     </em> @var Mio_Plugin_Footer
     <em>/
    private static $instance = null;

    /</strong>
     </em> Ottieni l'istanza singleton
     <em>/
    public static function get_instance() {
        if (null === self::$instance) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    /<strong>
     </em> Costruttore - inizializza gli hook
     <em>/
    private function __construct() {
        add_action('wp_footer', array($this, ' mostra_contenuto_footer'));
        add_action('wp_enqueue_scripts', array($this, 'carica_stili'));
    }

    /</strong>
     </em> Carica gli stili CSS
     <em>/
    public function carica_stili() {
        wp_enqueue_style(
            'mpf-plugin-styles',
            MPF_PLUGIN_URL . 'assets/css/style.css',
            array(),
            MPF_PLUGIN_VERSION
        );
    }

    /**
     </em> Mostra il contenuto nel footer
     <em>/
    public function mostra_contenuto_footer() {
        echo '&lt;div id="mpf-footer-info"&gt;';
        echo '&lt;p&gt;Plugin creato con successo!&lt;/p&gt;';
        echo '&lt;/div&gt;';
    }
}

// Inizializza il plugin
Mio_Plugin_Footer::get_instance();
</code></pre>
<h3>Passaggio 4: Creare i File CSS</h3>
<p>Nella cartella <code>assets/css/</code>, crea il file <code>style.css</code> con gli stili di base:</p>
<pre><code class="language-css">#mpf-footer-info {
    background-color: #f8f9fa;
    padding: 20px;
    text-align: center;
    border-top: 3px solid #007bff;
    margin-top: 30px;
}

#mpf-footer-info p {
    margin: 0;
    color: #333;
    font-size: 14px;
}
</code></pre>
<hr>
<h2>Gestione delle Opzioni del Plugin</h2>
<p>Un plugin wordpress professionale permette agli utenti di configurare le impostazioni. WordPress offre un’API completa per la gestione delle opzioni che semplifica questo processo.</p>
<h3>Creare una Pagina di Impostazioni</h3>
<p>Aggiungi questo codice al file principale del plugin per creare una pagina nel menu di amministrazione:</p>
<pre><code class="language-php">// Aggiungi il menu nel pannello admin
add_action('admin_menu', function() {
    add_options_page(
        'Impostazioni Mio Plugin',
        'Mio Plugin Footer',
        'manage_options',
        'mpf-settings',
        'mpf_render_settings_page'
    );
});

// Renderizza la pagina delle impostazioni
function mpf_render_settings_page() {
    // Verifica permessi
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    &lt;div class="wrap"&gt;
        &lt;h1&gt;Impostazioni Mio Plugin Footer&lt;/h1&gt;
        &lt;form method="post" action="options.php"&gt;
            &lt;?php
            settings_fields('mpf_settings_group');
            do_settings_sections('mpf-settings');
            submit_button();
            ?&gt;
        &lt;/form&gt;
    &lt;/div&gt;
    &lt;?php
}

// Registra le impostazioni
add_action('admin_init', function() {
    register_setting('mpf_settings_group', 'mpf_footer_text', array(
        'sanitize_callback' =&gt; 'sanitize_text_field'
    ));

    add_settings_section(
        'mpf_main_section',
        'Configurazione Footer',
        null,
        'mpf-settings'
    );

    add_settings_field(
        'mpf_footer_text',
        'Testo da visualizzare',
        function() {
            $value = get_option('mpf_footer_text', 'Testo predefinito');
            echo '&lt;input type="text" name="mpf_footer_text" value="' . esc_attr($value) . '" class="regular-text"&gt;';
        },
        'mpf-settings',
        'mpf_main_section'
    );
});
</code></pre>
<hr>
<h2>Best Practices per lo Sviluppo di Plugin WordPress</h2>
<p>Per creare un plugin wordpress robusto e professionale, segui queste linee guida fondamentali:</p>
<h3>Sicurezza</h3>
<p>La sicurezza non è opzionale. Ogni input utente deve essere validato e sanitizzato:</p>
<pre><code class="language-php">// Sanitizzazione dell'input
$testo = sanitize_text_field($_POST['testo']);

// Escape dell'output
echo esc_html($testo);
echo esc_attr($testo);
echo esc_url($url);

// Preparazione query database
global $wpdb;
$risultato = $wpdb-&gt;get_var(
    $wpdb-&gt;prepare(
        "SELECT </em> FROM {$wpdb-&gt;posts} WHERE ID = %d",
        $id
    )
);
</code></pre>
<h3>Performance</h3>
<p>Evita di caricare risorse su pagine dove non sono necessarie:</p>
<pre><code class="language-php">// Carica script solo dove necessario
add_action('wp_enqueue_scripts', function() {
    if (is_single()) {
        wp_enqueue_script('mpf-script', MPF_PLUGIN_URL . 'assets/js/script.js', array('jquery'), MPF_PLUGIN_VERSION, true);
    }
});
</code></pre>
<h3>Compatibilità</h3>
<p>Verifica sempre l’esistenza di funzioni prima di usarle per garantire compatibilità con temi e altri plugin:</p>
<pre><code class="language-php">// Verifica funzioni
if (function_exists('do_blocks')) {
    $content = do_blocks($content);
}

// Verifica classi
if (class_exists('WooCommerce')) {
    // Codice specifico per WooCommerce
}
</code></pre>
<hr>
<h2>Hook WordPress: Il Cuore del Plugin</h2>
<p>I <a href="https://developer.wordpress.org/plugins/hooks/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">hook</a> sono fondamentali per l’interazione tra il tuo plugin e WordPress. Comprendere la differenza tra azioni e filtri ti permetterà di manipolare quasi ogni aspetto della piattaforma.</p>
<h3>Action Hooks</h3>
<p>Le azioni permettono di eseguire codice in specifici momenti:</p>
<pre><code class="language-php">// Hook durante l'inizializzazione
add_action('init', 'mpf_inizializza_plugin');

// Hook durante il caricamento del footer
add_action('wp_footer', 'mpf_aggiungi_contenuto');

// Hook per caricare risorse
add_action('wp_enqueue_scripts', 'mpf_carica_css');
</code></pre>
<h3>Filter Hooks</h3>
<p>I filtri permettono di modificare dati prima dell’output:</p>
<pre><code class="language-php">// Modifica il contenuto del post
add_filter('the_content', 'mpf_aggiungi_contenuto_articolo');

// Modifica l'excerpt
add_filter('get_the_excerpt', 'mpf_personalizza_excerpt');

// Modifica il titolo
add_filter('the_title', 'mpf_formatta_titolo');
</code></pre>
<hr>
<h2>Debug e Testing del Plugin</h2>
<p>Durante lo sviluppo, avrai bisogno di strumenti per identificare e risolvere problemi. Per attivare il debug in WordPress, modifica il file <code>wp-config.php</code>:</p>
<pre><code class="language-php">define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
</code></pre>
<h3>Logging Personalizzato</h3>
<p>Crea una funzione di logging per tracciare l’esecuzione del plugin:</p>
<pre><code class="language-php">function mpf_debug_log($messaggio) {
    if (WP_DEBUG === true) {
        error_log('[Mio Plugin] ' . print_r($messaggio, true));
    }
}
</code></pre>
<hr>
<h2>Attivazione e Disattivazione del Plugin</h2>
<p>WordPress fornisce hook specifici per gestire l’attivazione e la disattivazione del plugin. Questi hook permettono di eseguire operazioni importanti come la creazione di tabelle custom o la pulizia dei dati.</p>
<pre><code class="language-php">register_activation_hook(__FILE__, 'mpf_attivazione_plugin');

function mpf_attivazione_plugin() {
    // Creare opzioni di default
    add_option('mpf_footer_text', 'Benvenuto nel mio plugin!');

    // Flush rewrite rules se necessario
    flush_rewrite_rules();
}

register_deactivation_hook(__FILE__, 'mpf_disattivazione_plugin');

function mpf_disattivazione_plugin() {
    // Pulizia dati se necessario
    // Non eliminare dati qui per permettere riattivazione
}
</code></pre>
<hr>
<h2>Distribuzione del Plugin</h2>
<p>Se desideri condividere il tuo plugin wordpress con altri utenti, hai due opzioni principali:</p>
<h3>Repository WordPress Ufficiale</h3>
<p>Per pubblicare nel repository ufficiale:</p>
<ol>
<li>Registra un account su <a href="https://wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress.org</a></li>
<li>Crea il file <code>README.txt</code> nel formato richiesto</li>
<li>Carica il codice tramite SVN</li>
<li>Attendi la revisione del team WordPress</li>
</ol>
<h3>Distribuzione Privata</h3>
<p>Per distribuzione privata o commerciale:</p>
<ol>
<li>Comprimi la directory del plugin in formato ZIP</li>
<li>Fornisci file di installazione manuale</li>
<li>Implementa un sistema di licenze se necessario</li>
</ol>
<hr>
<h2>Manutenzione e Aggiornamenti</h2>
<p>Un plugin richiede manutenzione continua per rimanere sicuro e compatibile:</p>
<ul>
<li><strong>Aggiornamenti WordPress</strong>: Testa sempre il plugin con le ultime versioni di WordPress</li>
<li><strong>PHP Evolution</strong>: Verifica compatibilità con nuove versioni PHP</li>
<li><strong>Security Patches</strong>: Rimani informato sulle vulnerabilità comuni</li>
<li><strong>Feedback Utenti</strong>: Implementa un sistema di supporto per raccogliere feedback</li>
</ul>
<hr>
<h2>Conclusione</h2>
<p>Creare un <strong>plugin wordpress</strong> personalizzato è un investimento prezioso per il tuo sito. In questa guida hai imparato le basi fondamentali: dalla struttura di un plugin alla creazione di pagine di impostazioni, dalla sicurezza all’uso dei hook WordPress.</p>
<p>Ricorda che lo sviluppo di plugin è un processo iterativo. Inizia con funzionalità semplici, testa accuratamente, e amplia gradualmente le capacità del tuo plugin. La documentazione ufficiale di WordPress, disponibile sul <a href="https://developer.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Codex WordPress</a>, offre risorse aggiuntive per approfondire ogni aspetto.</p>
<p>Se questo è il tuo primo plugin, ti consiglio di iniziare con piccoli progetti prima di affrontare implementazioni complesse. La pratica costante e la lettura del codice di plugin ben sviluppati ti aiuteranno a diventare un sviluppatore WordPress competente.</p>
<p>Hai domande o spunti da condividere sulla creazione di plugin WordPress? Lascia un commento qui sotto, il tuo feedback è sempre gradito!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/creare-un-plugin-wordpress-guida-tutorial-passo-passo/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creare plugin WordPress attraverso l&#039;Intelligenza Artificiale</title>
		<link>https://www.mrtux.it/creare-plugin-wordpress-attraverso-lintelligenza-artificiale</link>
					<comments>https://www.mrtux.it/creare-plugin-wordpress-attraverso-lintelligenza-artificiale#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 20 May 2026 15:22:59 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[AI Coding]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-cli]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3380</guid>

					<description><![CDATA[Guida pratica per creare plugin WordPress con l'intelligenza artificiale: prompt, codice PHP, sicurezza, WP-CLI, link a risorse ufficiali e checklist SEO.]]></description>
										<content:encoded><![CDATA[<p>Creare un plugin WordPress con l'intelligenza artificiale non significa copiare codice da una chat e sperare che funzioni. Significa usare l'AI come acceleratore tecnico dentro un processo controllato: requisiti chiari, prompt precisi, codice piccolo, revisione di sicurezza, test in staging e solo dopo pubblicazione.</p>
<p>La promessa e' potente: trasformare un'idea in una funzionalita' installabile in pochi minuti. Il rischio, pero', e' altrettanto concreto: un plugin generato male puo' aprire problemi di sicurezza, rallentare il sito, salvare dati nel modo sbagliato o entrare in conflitto con altri componenti.</p>
<p>Questa guida mostra un metodo pratico per creare plugin WordPress attraverso l'intelligenza artificiale senza cadere nella trappola del codice casuale. Troverai prompt, architettura, esempi PHP, checklist SEO e riferimenti ufficiali. Se vuoi approfondire il metodo da prompt a codice, leggi anche l'articolo su <a href="https://www.mrtux.it/dal-prompt-al-plugin-wordpress-ai" data-wpel-link="internal" target="_self" rel="noopener">dal prompt al plugin WordPress</a>, la guida su <a href="https://www.mrtux.it/ai-sviluppo-wordpress-progettare-scrivere-ottimizzare-plugin" data-wpel-link="internal" target="_self" rel="noopener">AI e sviluppo WordPress per progettare e ottimizzare plugin</a> e l'approfondimento sugli <a href="https://www.mrtux.it/hook-wordpress-azioni-e-filter-per-plugin-professionali" data-wpel-link="internal" target="_self" rel="noopener">hook WordPress per plugin professionali</a>.</p>
<h2>Perche' l'AI cambia lo sviluppo dei plugin WordPress</h2>
<p>WordPress e' un ecosistema enorme: hook, azioni, filtri, shortcode, REST API, Options API, metadati, ruoli utente, nonce, capability, traduzioni e standard di codice. L'intelligenza artificiale puo' aiutarti a navigare tutto questo piu' velocemente, ma non deve sostituire la comprensione tecnica.</p>
<p>L'AI e' utile soprattutto in cinque aree:</p>
<ul>
<li>trasformare un'idea vaga in requisiti tecnici;</li>
<li>generare boilerplate coerente con WordPress;</li>
<li>proporre hook, funzioni e struttura dei file;</li>
<li>revisionare codice alla ricerca di errori;</li>
<li>scrivere documentazione, readme e checklist di test.</li>
</ul>
<p>Il punto chiave e' questo: un modello linguistico puo' produrre codice plausibile, ma non ha la responsabilita' del sito. Quella resta tua. Per questo conviene lavorare con un workflow ripetibile, non con prompt improvvisati.</p>
<h2>Il workflow corretto: dall'idea al plugin installabile</h2>
<p>Il metodo piu' sicuro per creare plugin WordPress con AI e' diviso in sette fasi. Ogni fase ha un obiettivo preciso e una verifica concreta.</p>
<ol>
<li>Definisci il problema che il plugin deve risolvere.</li>
<li>Trasforma l'idea in requisiti funzionali e tecnici.</li>
<li>Chiedi all'AI una struttura minima, non un plugin gigante.</li>
<li>Genera il codice un file alla volta.</li>
<li>Fai revisionare sicurezza, naming e compatibilita'.</li>
<li>Testa in locale o staging con debug attivo.</li>
<li>Documenta uso, limiti e manutenzione.</li>
</ol>
<p>Questo flusso si integra bene con un workflow piu' ampio di <a href="https://www.mrtux.it/sviluppo-wordpress-ai-temi-plugin" data-wpel-link="internal" target="_self" rel="noopener">sviluppo WordPress con AI per temi e plugin</a>, soprattutto quando lavori su progetti cliente o siti con traffico reale.</p>
<h2>Prima di scrivere codice: il prompt di analisi</h2>
<p>L'errore piu' comune e' chiedere subito: &quot;creami un plugin WordPress&quot;. E' il modo piu' rapido per ottenere codice generico. Prima devi chiedere all'AI di chiarire il progetto.</p>
<p>Usa un prompt come questo:</p>
<pre><code class="language-text">Agisci come sviluppatore WordPress senior specializzato in plugin sicuri e manutenibili.

Voglio creare un plugin WordPress chiamato &quot;MRT Reading CTA&quot;.
Obiettivo: aggiungere automaticamente alla fine degli articoli un box con tempo di lettura stimato e una call to action configurabile.

Prima di scrivere codice, produci:
1. requisiti funzionali;
2. requisiti di sicurezza;
3. hook WordPress necessari;
4. dati da salvare e dove salvarli;
5. struttura minima dei file;
6. rischi tecnici;
7. checklist di test.

Non generare ancora codice PHP.</code></pre>
<p>Questo prompt forza il modello a progettare prima di produrre. La qualita' del risultato aumenta perche' il codice nasce da un perimetro chiaro.</p>
<h2>Struttura minima consigliata</h2>
<p>Per un plugin semplice non serve un framework interno. Serve una struttura leggibile, con nomi coerenti e pochi file.</p>
<pre><code class="language-text">mrt-reading-cta/
├── mrt-reading-cta.php
├── includes/
│   └── admin-settings.php
├── assets/
│   └── css/
│       └── frontend.css
└── readme.txt</code></pre>
<p>Questa struttura basta per un plugin piccolo con impostazioni admin e output frontend. Se il plugin cresce, puoi separare shortcode, REST API, integrazioni esterne e classi dedicate. Ma all'inizio la semplicita' e' una forma di sicurezza.</p>
<h2>Esempio pratico: plugin con tempo di lettura e CTA</h2>
<p>Immaginiamo di creare un plugin che aggiunge alla fine di ogni articolo un box con tempo di lettura stimato e link a un servizio. E' un caso reale, utile per blog, content marketing e siti editoriali.</p>
<p>Ecco un esempio minimale, pensato per mostrare i concetti fondamentali:</p>
<pre><code class="language-php">&lt;?php
/**
 * Plugin Name: MRT Reading CTA
 * Description: Aggiunge un box con tempo di lettura stimato e call to action alla fine degli articoli.
 * Version: 0.1.0
 * Author: MrTux
 * Text Domain: mrt-reading-cta
 */

if ( ! defined( &#039;ABSPATH&#039; ) ) {
    exit;
}

define( &#039;MRT_READING_CTA_VERSION&#039;, &#039;0.1.0&#039; );

add_filter( &#039;the_content&#039;, &#039;mrt_reading_cta_append_box&#039; );

function mrt_reading_cta_append_box( $content ) {
    if ( ! is_singular( &#039;post&#039; ) || ! in_the_loop() || ! is_main_query() ) {
        return $content;
    }

    $plain_text = wp_strip_all_tags( $content );
    $word_count = str_word_count( $plain_text );
    $minutes    = max( 1, (int) ceil( $word_count / 220 ) );
    $cta_url    = get_option( &#039;mrt_reading_cta_url&#039;, home_url( &#039;/contatti/&#039; ) );

    $box  = &#039;&lt;div class=&quot;mrt-reading-cta&quot;&gt;&#039;;
    $box .= &#039;&lt;p&gt;&lt;strong&gt;&#039; . esc_html( sprintf( &#039;Tempo di lettura: %d minuti&#039;, $minutes ) ) . &#039;&lt;/strong&gt;&lt;/p&gt;&#039;;
    $box .= &#039;&lt;p&gt;&#039; . esc_html__( &#039;Vuoi trasformare questa idea in un plugin su misura?&#039;, &#039;mrt-reading-cta&#039; ) . &#039;&lt;/p&gt;&#039;;
    $box .= &#039;&lt;a href=&quot;&#039; . esc_url( $cta_url ) . &#039;&quot;&gt;&#039; . esc_html__( &#039;Richiedi una consulenza WordPress&#039;, &#039;mrt-reading-cta&#039; ) . &#039;&lt;/a&gt;&#039;;
    $box .= &#039;&lt;/div&gt;&#039;;

    return $content . $box;
}</code></pre>
<p>Questo snippet mostra gia' alcuni principi importanti:</p>
<ul>
<li>blocco dell'accesso diretto con <code>ABSPATH</code>;</li>
<li>uso di <code>the_content</code> solo nei post singoli;</li>
<li>controllo su loop principale e query principale;</li>
<li>escape dell'URL con <code>esc_url()</code>;</li>
<li>escape del testo con <code>esc_html()</code> ed <code>esc_html__()</code>;</li>
<li>opzione configurabile con fallback sicuro.</li>
</ul>
<p>Non e' ancora un plugin commerciale, ma e' una base sensata. Da qui puoi chiedere all'AI di aggiungere una pagina impostazioni, un file CSS, traduzioni e test.</p>
<h2>Prompt per aggiungere una pagina impostazioni</h2>
<p>La pagina impostazioni e' una delle parti dove l'AI sbaglia piu' spesso. Puo' dimenticare nonce, capability o sanitizzazione. Devi quindi essere molto esplicito.</p>
<pre><code class="language-text">Partendo dal plugin MRT Reading CTA, aggiungi una pagina impostazioni sotto &quot;Impostazioni &gt; Reading CTA&quot;.

Vincoli obbligatori:
- accesso solo a utenti con capability manage_options;
- salvataggio di una singola opzione mrt_reading_cta_url;
- campo URL sanificato con esc_url_raw;
- form protetto da nonce;
- output sempre escapato;
- text domain mrt-reading-cta;
- nessun framework esterno;
- codice compatibile con WordPress 6.x e PHP 8.1.

Restituisci solo il codice necessario e spiega quali parti devo testare.</code></pre>
<p>Un prompt cosi' riduce il rischio di codice superficiale. Non basta dire &quot;sicuro&quot;: devi specificare cosa significa sicurezza in WordPress.</p>
<h2>Sicurezza: la checklist che l'AI deve rispettare</h2>
<p>La sicurezza e' il confine tra un esperimento e un plugin installabile. Quando usi AI per generare codice WordPress, controlla sempre questi elementi.</p>
<table>
<thead>
<tr>
<th>Area</th>
<th>Controllo</th>
<th>Funzioni utili</th>
</tr>
</thead>
<tbody>
<tr>
<td>Accesso diretto</td>
<td>Il file blocca esecuzioni fuori da WordPress</td>
<td><code>defined( &#039;ABSPATH&#039; )</code></td>
</tr>
<tr>
<td>Permessi</td>
<td>Solo utenti autorizzati modificano impostazioni</td>
<td><code>current_user_can()</code></td>
</tr>
<tr>
<td>Intenzione</td>
<td>I form admin verificano la richiesta</td>
<td><code>check_admin_referer()</code></td>
</tr>
<tr>
<td>Input</td>
<td>I dati salvati sono puliti</td>
<td><code>sanitize_text_field()</code>, <code>esc_url_raw()</code>, <code>absint()</code></td>
</tr>
<tr>
<td>Output</td>
<td>I dati stampati sono protetti</td>
<td><code>esc_html()</code>, <code>esc_attr()</code>, <code>esc_url()</code></td>
</tr>
<tr>
<td>Database</td>
<td>Query sicure quando serve SQL custom</td>
<td><code>$wpdb-&gt;prepare()</code></td>
</tr>
<tr>
<td>REST API</td>
<td>Endpoint protetti</td>
<td><code>permission_callback</code></td>
</tr>
</tbody>
</table>
<p>Le fonti ufficiali restano indispensabili: consulta il <a href="https://developer.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Plugin Handbook</a>, la sezione sulla <a href="https://developer.wordpress.org/plugins/security/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">sicurezza dei plugin WordPress</a>, la documentazione su <a href="https://developer.wordpress.org/apis/security/escaping/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">validazione, sanitizzazione ed escaping</a> e le <a href="https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">linee guida per plugin WordPress.org</a>.</p>
<h2>Come usare l'AI per fare code review</h2>
<p>Dopo aver generato il codice, cambia ruolo al modello. Non chiedergli di &quot;migliorare&quot; il plugin. Chiedigli di fare revisione tecnica con vincoli stretti.</p>
<pre><code class="language-text">Analizza questo plugin WordPress come revisore senior.
Non riscrivere tutto.
Segnala solo problemi concreti in queste aree:
1. capability mancanti o sbagliate;
2. nonce assenti;
3. input non sanificati;
4. output non escapati;
5. uso scorretto di hook;
6. naming collision;
7. problemi di compatibilita&#039; PHP/WordPress;
8. possibili warning con WP_DEBUG attivo.

Per ogni problema dammi: rischio, riga coinvolta e patch minima.</code></pre>
<p>Questo tipo di prompt rende l'AI piu' utile. La obbliga a cercare difetti verificabili invece di proporre refactoring estetici.</p>
<h2>Test in staging con WP-CLI</h2>
<p>Un plugin generato con AI non va mai testato direttamente sul sito live. Crea uno staging o un ambiente locale. Poi usa comandi semplici e ripetibili.</p>
<pre><code class="language-bash"># verifica che WordPress veda il plugin
wp plugin list

# attiva il plugin
wp plugin activate mrt-reading-cta

# controlla l&#039;opzione salvata
wp option get mrt_reading_cta_url

# disattiva il plugin per verificare rollback base
wp plugin deactivate mrt-reading-cta</code></pre>
<p>La documentazione di <a href="https://make.wordpress.org/cli/handbook/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI</a> e' fondamentale per trasformare i test in una procedura ripetibile. Per controlli piu' avanzati puoi usare anche <a href="https://github.com/WordPress/WordPress-Coding-Standards" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Coding Standards</a>, utile per intercettare problemi di stile e sicurezza ricorrenti.</p>
<h2>AI, REST API e integrazioni esterne</h2>
<p>Molti plugin moderni integrano servizi AI esterni: OpenAI, Claude, Gemini, modelli locali o API proprietarie. Qui serve ancora piu' attenzione. Un plugin che invia prompt, dati utente o contenuti a servizi esterni deve considerare privacy, timeout, gestione errori e consenso.</p>
<p>Se il plugin usa endpoint REST, non lasciare mai permessi vaghi. La documentazione della <a href="https://developer.wordpress.org/rest-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress REST API</a> mostra come registrare route e callback in modo corretto.</p>
<p>Esempio di endpoint protetto:</p>
<pre><code class="language-php">add_action( &#039;rest_api_init&#039;, function () {
    register_rest_route(
        &#039;mrt-reading-cta/v1&#039;,
        &#039;/settings&#039;,
        array(
            &#039;methods&#039;             =&gt; &#039;POST&#039;,
            &#039;callback&#039;            =&gt; &#039;mrt_reading_cta_save_settings&#039;,
            &#039;permission_callback&#039; =&gt; function () {
                return current_user_can( &#039;manage_options&#039; );
            },
        )
    );
} );</code></pre>
<p>Se l'AI propone <code>__return_true</code> come <code>permission_callback</code>, chiedi una giustificazione. Per dati pubblici puo' essere accettabile. Per impostazioni, azioni admin o contenuti riservati e' quasi sempre un errore.</p>
<h2>Come trasformare un plugin AI in contenuto SEO</h2>
<p>Creare plugin WordPress con l'intelligenza artificiale puo' diventare anche una strategia editoriale. Ogni plugin risolve un problema specifico e quel problema puo' diventare un articolo, una guida, una landing page o un case study.</p>
<p>Il formato che funziona meglio e':</p>
<ul>
<li>problema reale del lettore;</li>
<li>soluzione con plugin;</li>
<li>prompt usato;</li>
<li>codice spiegato;</li>
<li>errori corretti;</li>
<li>checklist di sicurezza;</li>
<li>risultato finale.</li>
</ul>
<p>Questo e' lo stesso principio che trovi nei contenuti su <a href="https://www.mrtux.it/plugin-ai-wordpress-contenuti-seo-automazione" data-wpel-link="internal" target="_self" rel="noopener">plugin AI per WordPress dedicati a contenuti, SEO e automazione</a>: l'AI diventa utile quando viene collegata a un risultato concreto, misurabile e replicabile.</p>
<h2>Errori da evitare</h2>
<p>Quando crei plugin WordPress attraverso l'AI, evita questi errori.</p>
<ul>
<li>Pubblicare codice generato senza leggerlo.</li>
<li>Installare il plugin direttamente in produzione.</li>
<li>Dimenticare nonce nei form admin.</li>
<li>Usare capability troppo permissive.</li>
<li>Stampare dati utente senza escape.</li>
<li>Creare tabelle custom quando bastano opzioni o meta.</li>
<li>Caricare CSS e JavaScript su tutte le pagine senza motivo.</li>
<li>Salvare API key in chiaro senza valutare permessi e privacy.</li>
<li>Fidarti di funzioni WordPress inventate o obsolete.</li>
<li>Chiedere all'AI un plugin enorme invece di procedere per moduli.</li>
</ul>
<p>La regola e' semplice: se non sai spiegare cosa fa ogni blocco di codice, non e' ancora pronto.</p>
<h2>Le migliori risorse da tenere aperte</h2>
<p>Quando lavori con AI e WordPress, tieni sempre aperte queste risorse ufficiali e tecniche:</p>
<ul>
<li><a href="https://developer.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Plugin Handbook</a> per struttura, API e standard di sviluppo.</li>
<li><a href="https://developer.wordpress.org/reference/hooks/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Hooks Reference</a> per verificare azioni e filtri.</li>
<li><a href="https://developer.wordpress.org/plugins/security/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Plugin Security Handbook</a> per nonce, capability e gestione input/output.</li>
<li><a href="https://developer.wordpress.org/rest-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress REST API Handbook</a> per endpoint e permission callback.</li>
<li><a href="https://make.wordpress.org/cli/handbook/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI Handbook</a> per test, automazione e gestione da terminale.</li>
<li><a href="https://github.com/WordPress/WordPress-Coding-Standards" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Coding Standards</a> per controlli di qualita' sul codice PHP.</li>
<li><a href="https://platform.openai.com/docs" target="_blank" rel="noopener nofollow external" data-wpel-link="external">OpenAI API Documentation</a> se vuoi integrare modelli AI esterni in un plugin.</li>
</ul>
<h2>Checklist finale prima della pubblicazione</h2>
<p>Prima di considerare pronto un plugin generato con AI, verifica questi punti.</p>
<ol>
<li>Il plugin ha uno scopo chiaro in una frase.</li>
<li>Il nome dello slug e il prefisso delle funzioni sono coerenti.</li>
<li>Tutti i file bloccano accesso diretto.</li>
<li>Ogni form admin usa nonce.</li>
<li>Ogni azione sensibile controlla le capability.</li>
<li>Ogni input e' validato o sanificato.</li>
<li>Ogni output e' escapato.</li>
<li>Il plugin si attiva e disattiva senza errori.</li>
<li>WP_DEBUG non mostra warning o notice.</li>
<li>Il codice e' stato testato in staging.</li>
<li>Il readme spiega installazione, uso e limiti.</li>
<li>Eventuali API esterne hanno timeout e gestione errori.</li>
</ol>
<p>Questa checklist puo' diventare un prompt finale:</p>
<pre><code class="language-text">Verifica questo plugin contro la checklist seguente.
Non proporre nuove funzionalita&#039;.
Segnala solo i punti non rispettati e suggerisci la correzione minima.</code></pre>
<h2>Conclusione</h2>
<p>Creare plugin WordPress attraverso l'intelligenza artificiale e' una delle applicazioni piu' concrete dell'AI nello sviluppo web. Il vantaggio non e' solo scrivere codice piu' velocemente. Il vero vantaggio e' ridurre il tempo tra idea, prototipo, revisione e test.</p>
<p>La differenza tra un plugin utile e un rischio per il sito sta nel metodo. Usa l'AI per chiarire requisiti, generare una base, revisionare codice e preparare documentazione. Usa la tua competenza per decidere architettura, sicurezza, compatibilita' e pubblicazione.</p>
<p>Se vuoi iniziare oggi, scegli una funzionalita' piccola: uno shortcode, un box CTA, una pagina impostazioni, un'integrazione semplice. Genera poco codice, controllalo bene, testalo in staging e miglioralo a piccoli passi. E' cosi' che l'intelligenza artificiale diventa uno strumento professionale, non una scorciatoia pericolosa.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/creare-plugin-wordpress-attraverso-lintelligenza-artificiale/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OpenCode: L&#039;AI che Programma Mentre Dormi - La Guida Pratica per Sviluppatori WordPress</title>
		<link>https://www.mrtux.it/opencode-lai-che-programma-mentre-dormi-la-guida-pratica-per-sviluppatori-wordpress</link>
					<comments>https://www.mrtux.it/opencode-lai-che-programma-mentre-dormi-la-guida-pratica-per-sviluppatori-wordpress#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 09:11:03 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[Agent AI]]></category>
		<category><![CDATA[AI Coding]]></category>
		<category><![CDATA[Automazione]]></category>
		<category><![CDATA[LSP]]></category>
		<category><![CDATA[OpenCode]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[Sviluppo Software]]></category>
		<category><![CDATA[WordPress Development]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3248</guid>

					<description><![CDATA[OpenCode: L'AI che Programma Mentre Dormi Cinque milioni di sviluppatori usano gia un agente AI che non aspetta di essere interpellato. Si sveglia ogni 30 minuti, controlla cosa c'e da fare, e si mette al lavoro. Ha accesso alla tua shell, al tuo file system, e a ogni API key che gli hai fornito. Non [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>OpenCode: L'AI che Programma Mentre Dormi</h1>
<p><em>Cinque milioni di sviluppatori usano gia un agente AI che non aspetta di essere interpellato. Si sveglia ogni 30 minuti, controlla cosa c'e da fare, e si mette al lavoro. Ha accesso alla tua shell, al tuo file system, e a ogni API key che gli hai fornito.</em></p>
<p>Non e uno slogan pubblicitario. E la descrizione di quello che <strong>OpenCode</strong> fa oggi, su macchine reali, per team di sviluppo reali.</p>
<p>La domanda interessante non e se questo tipo di strumento sia impressionante. Chiaramente lo e. La domanda interessante e: <strong>perche la maggior parte degli sviluppatori tratta ancora l'AI come un autocomplete glorificato?</strong></p>
<hr />
<h2>Cosa Rende Diverso OpenCode</h2>
<p>Ogni strumento di coding AI fa la stessa affermazione di base: ti aiuta a scrivere codice piu velocemente. GitHub Copilot, Cursor, Windsurf - vivono tutti nel tuo IDE e rispondono quando chiedi qualcosa. Sono <strong>reattivi</strong>. Tu guidi; loro suggeriscono.</p>
<p>OpenCode lavora su una premessa completamente diversa. Tratta l'AI come <strong>agente</strong> e te come <strong>architetto</strong>. Tu descrivi cosa vuoi costruire. Lo strumento capisce quali file sono rilevanti, li legge, costruisce un piano, e lo esegue. Tu revisioni quello che ha fatto.</p>
<p>E una relazione genuinamente diversa con la macchina. Non migliore per ogni situazione, ma abbastanza diversa da cambiare come pensi a cosa sia realmente il lavoro di programmazione.</p>
<hr />
<h2>L'Architettura che Rende Tutto Possibile</h2>
<p>OpenCode gira come <strong>server in background</strong>, non come un processo che apri quando ti serve. Un client leggero si connette, che sia un'interfaccia terminale, un'app desktop, o un'estensione VS Code. Questo e importante perche significa che l'agente puo mantenere stato persistente ed eseguire sessioni multiple in parallelo.</p>
<h3>Esecuzione Parallela</h3>
<p>Puoi puntare un agente verso un refactor di un microservizio backend e un altro verso lavoro CSS frontend, eseguendo simultaneamente, nello stesso repository. I vecchi tool CLI bloccano il terminale finche un task non completa. OpenCode tratta il parallelismo come feature di prima classe.</p>
<h3>Gerarchia degli Agent</h3>
<p>Ci sono due agent principali con cui la maggior parte degli utenti interagisce:</p>
<p><strong>Plan Mode</strong> e read-only. Esplora il tuo codebase, mappa la struttura rilevante, e produce una strategia di implementazione passo-passo. Non puo toccare un singolo file. Lo usi per pensare a cosa stai per fare.</p>
<p><strong>Build Mode</strong> esegue il piano. Ha pieno accesso read/write, puo eseguire comandi shell, modificare file, e lanciare test. Una volta verificato che la proposta dell'agente Plan ha senso, passi a Build e lo lasci girare.</p>
<p>La separazione sembra semplice. In pratica previene una categoria massiccia di errori, perche il modello ragiona sul problema prima di iniziare a toccare le cose.</p>
<h3>Compaction Agent</h3>
<p>C'e anche un agente interno di Compaction che gira silenziosamente in background. Man mano che la cronologia della conversazione cresce e riempie la context window, riassume le parti rilevanti e mantiene il modello primario focalizzato. Senza questo, le sessioni lunghe degradano. Il modello inizia a dimenticare le istruzioni precedenti.</p>
<hr />
<h2>L'Integrazione LSP: Il Vero Game-Changer</h2>
<p>Qui e dove OpenCode si separa davvero dal resto, e la maggior parte dei contenuti tutorial lo salta completamente.</p>
<p>Gli agent AI di coding standard leggono i file come testo. Fanno grep di stringhe, matchano pattern, e indovinano le relazioni strutturali. Funziona bene per task semplici. Si rompe durante refactor su larga scala in codebase complessi.</p>
<p>OpenCode puo connettersi direttamente ai tool <strong>Language Server Protocol (LSP)</strong>, gli stessi sistemi che il tuo IDE usa per capire il codice semanticamente. Abilitalo con:</p>
<pre><code>OPENCODE_EXPERIMENTAL_LSP_TOOL=true</code></pre>
<p>E improvvisamente l'agente ha accesso a:</p>
<ul>
<li><strong>goToDefinition</strong> - naviga alle definizioni</li>
<li><strong>findReferences</strong> - trova tutti i riferimenti</li>
<li><strong>call hierarchy analysis</strong> - analizza la gerarchia delle chiamate</li>
<li><strong>real-time diagnostics</strong> - diagnostiche in tempo reale</li>
</ul>
<p>Supporta TypeScript, Python, Java, Rust, Go, PHP, e altri.</p>
<h3>La Differenza Pratica</h3>
<p>Quando l'AI rinomina un metodo polimorfico attraverso 200 file di servizio, non sta indovinando quali occorrenze cambiare basandosi sul string matching. Usa riferimenti semantici. Sa esattamente cosa e una definizione, cosa e una chiamata, e cosa e un'annotazione di tipo. Il refactor e type-safe.</p>
<p>E se l'agente scrive qualcosa di sbagliato, l'LSP lancia diagnostiche di errore in tempo reale. L'agente vede il problema e lo corregge prima che tu debba revisionare.</p>
<hr />
<h2>Multi-Provider: La Liberta di Scelta</h2>
<p>OpenCode supporta OpenAI, Anthropic, Google, e modelli locali via Ollama. Quando Gemini 2.5 Pro e uscito, gli utenti hanno cambiato un blocco nel file di configurazione e hanno continuato a lavorare.</p>
<p>Questo non e un vantaggio banale. Il mercato dell'infrastruttura AI si sposta costantemente: la qualita dei modelli cambia, i prezzi cambiano, i termini di servizio cambiano. Qualsiasi strumento che ti lega a un singolo provider e una responsabilita.</p>
<p>L'architettura provider-agnostica di OpenCode significa che puoi eseguire modelli costosi per lavoro architetturale complesso e modelli veloci ed economici per boilerplate e scaffolding di test, cambiando dinamicamente nella stessa sessione.</p>
<hr />
<h2>OpenCode per Sviluppatori WordPress</h2>
<p>Per noi sviluppatori WordPress, OpenCode offre opportunita uniche:</p>
<h3>1. Sviluppo Plugin Automatizzato</h3>
<pre><code>&quot;Analizza il plugin WooCommerce e crea un&#039;estensione che 
aggiunga un campo personalizzato per la data di consegna 
preferita nel checkout&quot;</code></pre>
<p>OpenCode leggera i file rilevanti di WooCommerce, capira gli hook necessari, e generera codice funzionante.</p>
<h3>2. Refactoring Temi</h3>
<p>Con l'integrazione LSP per PHP, puoi:</p>
<ul>
<li>Rinominare funzioni attraverso tutto il tema</li>
<li>Trovare riferimenti a hook deprecati</li>
<li>Identificare codice non utilizzato</li>
</ul>
<h3>3. Debug Automatico</h3>
<pre><code>&quot;Il sito mostra errore 500 sulla pagina shop. 
Analizza i log e identifica la causa.&quot;</code></pre>
<p>L'agente puo leggere i log, identificare il file problematico, e suggerire o implementare la correzione.</p>
<h3>4. Documentazione Automatica</h3>
<pre><code>&quot;Genera documentazione PHPDoc per tutte le funzioni 
pubbliche di questo plugin&quot;</code></pre>
<hr />
<h2>Configurazione Rapida</h2>
<h3>1. Installazione</h3>
<pre><code class="language-bash"># macOS/Linux
curl -fsSL https://get.opencode.ai | sh

# Oppure via npm
npm install -g @opencode-ai/cli</code></pre>
<h3>2. Configurazione Provider</h3>
<p>Crea <code>~/.opencode/config.json</code>:</p>
<pre><code class="language-json">{
  &quot;providers&quot;: {
    &quot;openai&quot;: {
      &quot;apiKey&quot;: &quot;sk-...&quot;
    },
    &quot;anthropic&quot;: {
      &quot;apiKey&quot;: &quot;sk-ant-...&quot;
    }
  },
  &quot;defaultProvider&quot;: &quot;anthropic&quot;,
  &quot;defaultModel&quot;: &quot;claude-sonnet-4&quot;
}</code></pre>
<h3>3. Abilita LSP</h3>
<pre><code class="language-bash">export OPENCODE_EXPERIMENTAL_LSP_TOOL=true</code></pre>
<h3>4. Crea AGENTS.md</h3>
<p>Nella root del tuo progetto WordPress:</p>
<pre><code class="language-markdown"># Project Guidelines

## WordPress Coding Standards
- Segui WordPress Coding Standards
- Usa hook e filtri invece di modificare core
- Prefissa tutte le funzioni con il nome del tema/plugin

## File Structure
- /wp-content/themes/tuo-tema/
- /wp-content/plugins/tuo-plugin/

## Testing
- Esegui test prima di ogni commit
- Verifica compatibilita PHP 7.4+</code></pre>
<hr />
<h2>Dove Sta Andando Tutto Questo</h2>
<p>I team piu ambiziosi che usano OpenCode non lo trattano come un tool CLI. Usano framework come <strong>Oh My OpenCode</strong> per costruire veri sistemi multi-agente dove un manager agent coordina subagent specializzati, ognuno ottimizzato per un tipo specifico di lavoro.</p>
<p>L'orchestrazione, non il modello, e dove avviene il vero lavoro. Quali file l'agente legge. Quali sistemi esterni puo toccare. Come gestisce gli errori. Cosa fa quando e incerto. Il modello stesso e sempre piu una commodity. Puoi sostituirlo.</p>
<p>Questo e l'insight reale sepolto nell'architettura di OpenCode: <strong>lo strumento tratta l'intelligenza come intercambiabile e l'agenzia come la cosa che vale la pena costruire con cura</strong>.</p>
<p>L'LLM puo essere sostituito. La configurazione del progetto, i permessi dei tool, le integrazioni workflow, il file AGENTS.md che codifica gli standard del tuo team - quell'infrastruttura persiste attraverso ogni cambio di modello.</p>
<hr />
<h2>Conclusione</h2>
<p>Inizia con le basi. Inizializza un progetto, esegui alcune sessioni in Plan mode, blocca la tua configurazione dei permessi prima che l'agente tocchi qualcosa di distruttivo. Presta attenzione a cosa l'agente sbaglia e raffina il tuo file AGENTS.md per affrontarlo. Il sistema impara da quel feedback in modo molto diretto: scrivi istruzioni migliori, produce output migliori.</p>
<p>Gli sviluppatori che trattano questo come un sostituto di autocomplete passivo ottengono guadagni incrementali. Quelli che costruiscono attorno ad esso una vera infrastruttura di agent stanno delegando intere categorie di lavoro di ingegneria.</p>
<p><strong>Il divario tra questi due gruppi continuera a crescere.</strong></p>
<hr />
<p><em>Pubblicato il 9 Aprile 2026</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/opencode-lai-che-programma-mentre-dormi-la-guida-pratica-per-sviluppatori-wordpress/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Dall&#039;idea al plugin: guida completa alla creazione di nuove funzionalità WordPress</title>
		<link>https://www.mrtux.it/dall-idea-al-plugin-guida-completa-alla-creazione-di-nuove-funzionalita-wordpress</link>
					<comments>https://www.mrtux.it/dall-idea-al-plugin-guida-completa-alla-creazione-di-nuove-funzionalita-wordpress#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 11 Apr 2023 14:11:50 +0000</pubDate>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=1228</guid>

					<description><![CDATA[WordPress è senza dubbio uno dei CMS più popolari al mondo, utilizzato per oltre il 40% di tutti i siti web presenti su Internet. La sua popolarità deriva dalla sua interfaccia facile da usare, dalla flessibilità e dalla capacità di personalizzarlo con plugin. Se sei un utente di WordPress, sai quanto sia prezioso un buon [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>WordPress è senza dubbio uno dei CMS più popolari al mondo, utilizzato per oltre il 40% di tutti i siti web presenti su Internet. La sua popolarità deriva dalla sua interfaccia facile da usare, dalla flessibilità e dalla capacità di personalizzarlo con plugin. Se sei un utente di WordPress, sai quanto sia prezioso un buon plugin per migliorare la funzionalità del tuo sito web. Ma hai mai pensato di creare il tuo plugin WordPress? Questa guida è una risorsa completa che ti guiderà attraverso il processo di trasformare la tua idea in un plugin WordPress completamente funzionale. Copriremo tutto, dalla pianificazione e lo sviluppo alla prova e alla distribuzione, in modo che tu possa creare un plugin che si distingua dalla massa. Che tu sia uno sviluppatore che cerca di ampliare le proprie competenze o un imprenditore con un'ottima idea, questa guida ti fornirà le conoscenze e gli strumenti per creare un plugin WordPress che beneficerà milioni di utenti in tutto il mondo. Quindi, cominciamo!</p>
<h2 id="introduzioneaipluginwordpress">Introduzione ai plugin WordPress</h2>
<p>I <a href="https://it.wordpress.org/plugins/" rel="noopener nofollow external" target="_blank" data-wpel-link="external">plugin WordPress</a> consentono di aggiungere funzionalità extra al tuo sito web. Ci sono migliaia di plugin già disponibili su WordPress.org, ma la bellezza di WordPress è che è possibile creare un plugin personalizzato per soddisfare le esigenze specifiche del tuo sito web. Tuttavia, creare un plugin richiede un certo livello di conoscenza di PHP e un po' di esperienza di sviluppo di WordPress.</p>
<h2 id="comprenderelebasidellosviluppodiplugin">Comprendere le basi dello sviluppo di plugin</h2>
<p>Prima di iniziare a scrivere il codice per il tuo plugin, è importante capire le basi dello sviluppo di plugin WordPress. Ci sono alcune cose che devi conoscere prima di iniziare, come i template di pagina, i hook, i filtri e le funzioni di WordPress. I template di pagina consentono di creare pagine personalizzate per il tuo sito web, mentre i hook e i filtri consentono di modificare il comportamento di WordPress. Le funzioni di WordPress sono le funzioni principali che consentono di accedere ai dati del tuo sito web e di modificarli.</p>
<h2 id="strumentinecessariperlosviluppodiplugin">Strumenti necessari per lo sviluppo di plugin</h2>
<p>Per sviluppare un plugin WordPress, avrai bisogno di alcuni strumenti. In primo luogo, avrai bisogno di un editor di codice, come ad esempio Visual Studio Code o Sublime Text. Inoltre, avrai bisogno di una versione di WordPress installata sul tuo computer per testare il tuo plugin. È inoltre consigliabile utilizzare un ambiente di sviluppo locale, come ad esempio XAMPP o WAMP, per evitare problemi di compatibilità con il tuo sito web in produzione.</p>
<p><img fetchpriority="high" decoding="async" class="size-large wp-image-1212 aligncenter" src="https://www.mrtux.it/wp-content/uploads/2023/04/top-10-plugin-wordpress-1024x576.jpg" alt="Dall&#039;idea al plugin: guida completa alla creazione di nuove funzionalità WordPress 2" width="1024" height="576" srcset="https://www.mrtux.it/wp-content/uploads/2023/04/top-10-plugin-wordpress-1024x576.jpg 1024w, https://www.mrtux.it/wp-content/uploads/2023/04/top-10-plugin-wordpress-300x169.jpg 300w, https://www.mrtux.it/wp-content/uploads/2023/04/top-10-plugin-wordpress-768x432.jpg 768w, https://www.mrtux.it/wp-content/uploads/2023/04/top-10-plugin-wordpress.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<h2 id="pianificazionedelpluginidentificareilproblemadarisolvere">Pianificazione del plugin - identificare il problema da risolvere</h2>
<p>La prima cosa da fare quando si sviluppa un plugin WordPress è identificare il problema da risolvere. Ci sono molte ragioni per cui si potrebbe voler creare un plugin, ma è importante avere un obiettivo chiaro in mente. Ad esempio, potresti voler creare un plugin per migliorare la velocità del tuo sito web o per aggiungere funzionalità social al tuo sito web. Qualunque sia il motivo, è importante avere un obiettivo chiaro in mente prima di iniziare a scrivere il codice.</p>
<h2 id="progettazionedellafunzionalitdelplugin">Progettazione della funzionalità del plugin</h2>
<p>Una volta identificato il problema che si vuole risolvere, è importante progettare la funzionalità del plugin. Ciò significa decidere esattamente cosa farà il tuo plugin e come funzionerà. Ad esempio, se stai creando un plugin per migliorare la velocità del tuo sito web, potresti voler aggiungere funzionalità di caching per ridurre il tempo di caricamento delle pagine. È importante considerare come il tuo plugin sarà utilizzato dal pubblico e come si integrerà con il tuo sito web esistente.</p>
<h2 id="scritturadelcodicedelplugin">Scrittura del codice del plugin</h2>
<p>Una volta che hai pianificato la funzionalità del tuo plugin, è tempo di scrivere il codice. Ci sono alcune cose che devi sapere prima di iniziare a scrivere il codice. In primo luogo, devi conoscere il linguaggio di <a href="https://www.php.net/" rel="noopener nofollow external" target="_blank" data-wpel-link="external">programmazione PHP</a>. In secondo luogo, devi conoscere le funzioni di WordPress e come utilizzarle nel tuo plugin. In terzo luogo, devi conoscere la struttura di un plugin WordPress e come organizzare il tuo codice.</p>
<h2 id="testdelplugin">Test del plugin</h2>
<p>Una volta che hai scritto il codice del tuo plugin, è importante testarlo per assicurarsi che funzioni correttamente. Ci sono diverse fasi di test che dovresti considerare. In primo luogo, dovresti eseguire test unitari per assicurarti che ogni funzione del tuo plugin funzioni correttamente. In secondo luogo, dovresti eseguire test di integrazione per assicurarti che il tuo plugin funzioni correttamente con il tuo sito web esistente. Infine, dovresti eseguire test di accettazione per assicurarti che il tuo plugin funzioni correttamente per gli utenti finali.</p>
<h2 id="preparazionedelpluginperlapubblicazione">Preparazione del plugin per la pubblicazione</h2>
<p>Una volta che hai testato il tuo plugin e sei sicuro che funzioni correttamente, è tempo di prepararlo per la pubblicazione. Ci sono alcune cose che devi fare prima di pubblicare il tuo plugin su WordPress.org. In primo luogo, dovresti assicurarti che il tuo plugin sia conforme alle linee guida di WordPress.org. In secondo luogo, dovresti preparare la documentazione del tuo plugin, compresa la descrizione del plugin, le istruzioni per l'installazione e la guida all'uso.</p>
<h2 id="avviodelplugin">Rilascio del plugin</h2>
<p>Una volta che hai preparato il tuo plugin per il rilascio, è tempo di pubblicarlo. Ci sono alcune cose che devi fare per promuovere il tuo plugin e farlo conoscere al pubblico. In primo luogo, dovresti pubblicare il tuo plugin su WordPress.org. In secondo luogo, dovresti promuovere il tuo plugin sui social media e sul tuo sito web. In terzo luogo, dovresti cercare di ottenere recensioni positive per il tuo plugin.</p>
<h2 id="promozionedelplugin">Promozione del plugin</h2>
<p>La promozione del tuo plugin è importante per farlo conoscere al pubblico. Ci sono diverse cose che puoi fare per promuovere il tuo plugin. In primo luogo, puoi promuoverlo sui social media e sui forum di WordPress. In secondo luogo, puoi creare una pagina di landing dedicata al tuo plugin sul tuo sito web. In terzo luogo, puoi partecipare a eventi di WordPress e presentare il tuo plugin agli altri sviluppatori.</p>
<h2 id="manutenzioneeaggiornamentodelplugin">Manutenzione e aggiornamento del plugin</h2>
<p>Una volta che il tuo plugin è stato pubblicato, è importante mantenere e aggiornare il codice. Ci sono alcune cose che devi fare per mantenere il tuo plugin. In primo luogo, dovresti monitorare il tuo plugin per verificare che funzioni correttamente. In secondo luogo, dovresti correggere eventuali bug o problemi di sicurezza. Infine, dovresti aggiornare il tuo plugin per garantire la compatibilità con le nuove versioni di WordPress.</p>
<h2 id="conclusioni">Conclusioni</h2>
<p>Creare un plugin WordPress può sembrare complicato, ma con la giusta conoscenza e gli strumenti giusti, è possibile creare un plugin che migliorerà la funzionalità del tuo sito web. Speriamo che questa guida ti sia stata utile e ti abbia fornito le conoscenze e gli strumenti necessari per creare il tuo plugin WordPress personalizzato. Se hai domande o commenti, non esitare a contattarci. Buona fortuna con il tuo plugin!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/dall-idea-al-plugin-guida-completa-alla-creazione-di-nuove-funzionalita-wordpress/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
