Il Model Context Protocol (MCP) è uno standard aperto che stabilisce connessioni sicure tra strumenti basati sull’intelligenza artificiale e fonti di dati non pubbliche.

In altre parole, l’MCP crea un ponte sicuro tra gli assistenti basati sull’AI e le fonti di dati, permettendo ai modelli di AI di eseguire operazioni direttamente sui tuoi sistemi. Questo libera gli sviluppatori dalla seccatura di dover creare da zero un’integrazione personalizzata per ogni singola API o database.

L’MCP offre a strumenti come Claude e ChatGPT un accesso diretto ai tuoi dati. Invece di limitarsi a fare supposizioni, l’AI può attingere ai tuoi file system, alla documentazione interna o ai database per ottenere informazioni in tempo reale e gestire operazioni nelle tue app preferite.

Per le attività online, questo apre opportunità senza precedenti perché permette di collegare il tuo sito WordPress a un client MCP come Claude Desktop, consentendo loro di comunicare e sfruttare le capacità agentiche dell’AI attraverso le Abilità registrate sul tuo sito WordPress.

Se suona tutto troppo complesso, non preoccuparti. In questo tutorial ti forniremo le istruzioni per configurare il tuo sito WordPress e il client MCP di Claude, e per eseguire operazioni sul tuo sito tramite Claude Desktop.

Ma prima di iniziare con le istruzioni pratiche, definiamo i concetti fondamentali del Model Context Protocol.

Concetti fondamentali e definizioni dell’MCP

Se hai deciso di aprire il tuo sito WordPress all’interazione con un modello di AI tramite il Model Context Protocol, è importante comprendere chiaramente la catena di componenti coinvolti.

Client MCP: è un componente software che permette a un host AI di connettersi a un server MCP. L’host di AI è l’applicazione con cui interagisci (come Claude Desktop), mentre il client è il componente a livello di protocollo che rende possibile la connessione effettiva al server.

Server MCP: è un’applicazione software (o processo) che espone funzionalità specifiche a un’applicazione di AI tramite un protocollo standardizzato. Ne sono un esempio i server di file system, i server di database, i server di calendario e altro ancora.

Adattatore MCP: è il ponte di traduzione bidirezionale tra il client MCP e il nucleo del tuo sito WordPress. Il suo scopo è adattare le funzionalità del tuo sito WordPress alle primitive del Model Context Protocol, consentendo agli agenti di AI di individuare ed eseguire le funzionalità del tuo sito come strumenti MCP e di leggere i suoi dati come risorse MCP.

API Abilities: è il livello architetturale che permette a tutti i componenti di WordPress — sia del core che dei plugin — di esporre le proprie funzionalità in modo unificato e comprensibile sia per gli esseri umani che per le macchine. Consente agli sviluppatori di registrare azioni standardizzate e autodescrittive con schemi di input/output rigorosi che l’AI può individuare ed eseguire in modo autonomo.

Diagramma MCP
Diagramma MCP (Fonte immagine: Model Context Protocol)

Cosa si può fare con WordPress e MCP

Collegando un agente di AI al tuo sito WordPress, puoi sfruttare tutta la potenza dell’AI per leggere dati o eseguire operazioni complesse direttamente dalla tua applicazione host AI.

Attraverso il tuo host AI, puoi gestire i contenuti, occuparti delle attività amministrative e di manutenzione, monitorare lo stato del sito, gestire gli utenti, aggiornare i cataloghi dei prodotti, analizzare gli ordini e molto altro ancora. Non si tratta solo di eseguire azioni isolate, ma di gestire l’infrastruttura del tuo sito senza mai aprire la dashboard di amministrazione di WordPress.

Potresti chiedere all’AI di redigere una bozza di post in base alle tue linee guida generali, specificando la lunghezza, il tono e il livello di approfondimento dell’analisi. Potresti anche chiederle di generare immagini, eseguire calcoli in tempo reale e arricchire i contenuti con tabelle riassuntive che mostrano percentuali e valori assoluti.

Pensa anche all’efficienza dell’automazione delle operazioni: gestire l’onboarding dei nuovi utenti assegnando automaticamente i ruoli in base alle loro responsabilità all’interno dell’organizzazione, analizzare le prestazioni di vendita per prodotto nell’ultimo trimestre o generare automaticamente report riassuntivi per il team.

Ma puoi puntare ancora più in alto. Grazie all’API Abilities, WordPress è diventato un hub agentico che si integra perfettamente nei flussi di lavoro automatizzati gestiti dall’AI. L’agente AI può monitorare contesti esterni — come le tendenze di mercato, le fluttuazioni dei prezzi o le condizioni meteorologiche — interrogare il database per verificare i livelli delle scorte o la cronologia degli acquisti e prendere decisioni autonome basate sui dati.

Il proprietario del sito dovrà solo fornire istruzioni in linguaggio naturale all’agente IA, che poi coordinerà l’intero flusso di lavoro operativo.

Come collegare un agente AI al tuo sito WordPress tramite MCP

Prima di metterci all’opera con il codice e le configurazioni, diamo un’occhiata ai requisiti di sistema. Per collegare il tuo sito WordPress a un client AI tramite MCP, avrai bisogno di quanto segue:

  • Un sito WordPress di sviluppo: la versione minima richiesta è la 6.9, ma è vivamente consigliata la 7.0.
  • Node.js installato sul computer locale.
  • Claude Desktop: l’applicazione host ufficiale di MCP di Anthropic.
  • Il tuo editor di codice preferito: per questo tutorial usiamo VS Code.
  • Un client API come Postman per i test.

Configurare WordPress

Dato che lavoreremo con l’API Abilities di WordPress, avrai bisogno di un ambiente di staging o di sviluppo con WordPress 6.9 o versioni successive. Se stai lavorando in locale, assicurati che la riscrittura degli URL sia abilitata.

Passo 1: Installare il plugin WordPress MCP Adapter

Per prima cosa, scarica il file .zip del plugin MCP Adapter da GitHub e installalo sul tuo sito WordPress. Quando lo attivi, il plugin registra automaticamente un server MCP predefinito accessibile al seguente indirizzo:

https://yoursite.com/wp-json/mcp/mcp-adapter-default-server

Il server richiede richieste autenticate. Se invii questa richiesta senza autenticazione, riceverai il seguente oggetto di risposta:

{"code":"rest_forbidden","message":"Sorry, you are not allowed to do that.","data":{"status":401}}

Ci torneremo tra un attimo.

Ora devi verificare che lo spazio dei nomi mcp sia registrato correttamente. Per farlo, invia la seguente richiesta nel tuo browser o in Postman:

https://yoursite.com/wp-json/

Nella risposta, cerca lo spazio dei nomi mcp:

{
  "name": "WordPress 7.0",
  "description": "",
  "url": "http://yoursite.com",
  "home": "https://yoursite.com",
  "gmt_offset": "0",
  "timezone_string": "",
  "page_for_posts": 0,
  "page_on_front": 345,
  "show_on_front": "page",
  "namespaces": [
    "oembed/1.0",
    "mcp",
    "wp/v2",
    "wp-site-health/v1",
    "wp-block-editor/v1",
    "wp-abilities/v1"
  ],
  ...
}

Se lo vedi, significa che il server MCP funziona come previsto. Altrimenti, controlla che il plugin sia attivo o che tu stia usando la versione corretta di WordPress.

Ora che hai trasformato il sito WordPress in un server MCP, passiamo alla registrazione dell’Ability necessaria per consentire al client MCP di Claude Desktop di comunicare con il tuo sito ed eseguire azioni. Nel nostro esempio, creerai una bozza di post.

Passo 2: Registrare le Ability con un plugin

Apri il tuo editor di codice preferito, crea un nuovo file e scrivi il seguente codice:

<?php
/**
 * Plugin Name: My MCP Test Plugin
 * Description: Demonstration plugin for creating posts via MCP.
 * Version: 1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
  exit;
}

add_action( 'wp_abilities_api_init', 'kinsta_mcp_register_simple_draft_ability' );

/**
 * Registers a minimal ability to create post drafts.
 * This acts as a formal contract between the underlying PHP logic and the AI client.
 *
 * @return void
 */
function kinsta_mcp_register_simple_draft_ability(): void {

  if ( ! function_exists( 'wp_register_ability' ) ) {
    return;
  }

  wp_register_ability(
    'kinsta-plugin/create-draft',
    array(
      'category'  => 'post',
      'label'    => __( 'Create Post Draft', 'kinsta-mcp-draft' ),
      'description' => __( 'Creates a new post draft with a title and content provided by the AI agent.', 'kinsta-mcp-draft' ),
      'input_schema'  => array(
        'type'     => 'object',
        'properties' => array(
          'title'   => array(
            'type'    => 'string',
            'description' => __( 'The headline or title of the post draft.', 'kinsta-mcp-draft' ),
          ),
          'content' => array(
            'type'    => 'string',
            'description' => __( 'The body text or content generated for the draft.', 'kinsta-mcp-draft' ),
          ),
        ),
        'required'   => array( 'title', 'content' ), // Mandatory fields for the AI payload
      ),
      'permission_callback' => function(): bool {
        return current_user_can( 'edit_posts' );
      },
      'execute_callback'  => function( array $args ): array {
        $post_id = wp_insert_post( array(
          'post_title'   => sanitize_text_field( $args['title'] ),
          'post_content' => wp_kses_post( $args['content'] ),
          'post_status'  => 'draft',
          'post_type' => 'post',
        ) );

        if ( is_wp_error( $post_id ) ) {
          return array( 
            'success' => false, 
            'error'   => $post_id->get_error_message() 
          );
        }

        return array( 
          'success' => true, 
          'message' => __( 'Draft saved successfully!', 'kinsta-mcp-draft' ),
          'post_id' => $post_id 
        );
      },

      // Explicitly flag this ability as public to expose it through the default MCP Server
      'meta' => array(
        'mcp' => array(
          'public' => true, 
        ),
        // Also expose within the native WordPress REST API
        'show_in_rest' => true,
      ),
    )
  );
}

Ecco i punti chiave di questo plugin:

  • Per registrare la tua Ability, dovrai collegare la funzione wp_register_ability() all’azione wp_abilities_api_init.
  • Il primo argomento della funzione specifica il nome della funzionalità, compreso lo spazio dei nomi (kinsta-plugin/create-draft).
  • Il secondo argomento imposta i parametri di configurazione della funzionalità.
  • input_schema è un array che definisce il contratto di input per l’abilità. In questo caso, l’abilità si aspetta di ricevere un oggetto con due stringhe di testo obbligatorie: title e content.
  • permission_callback è una funzione che verifica se l’agente ha i permessi necessari per eseguire l’abilità (edit_posts).
  • execute_callback è la funzione di callback che viene eseguita quando l’abilità viene attivata. In questo esempio, wp_insert_post viene utilizzata per creare una nuova bozza di post.
  • Il flag meta.mcp.public rende l’abilità disponibile tramite il server predefinito dell’adattatore MCP (per saperne di più, leggi qui).

Non approfondiremo ulteriormente l’API Abilities. Se vuoi o hai bisogno di saperne di più, dai un’occhiata al nostro tutorial approfondito Guida introduttiva all’API Abilities di WordPress.

Ora salva il file, comprimilo in un file zip e caricalo sul sito come plugin. Una volta attivato, sarà tutto pronto per passare agli step successivi.

Passo 3: Generare una password dell’applicazione

Tutte le richieste inviate al server MCP di WordPress devono essere autenticate utilizzando una password dell’applicazione. Per generare una password dell’applicazione, apri la tua dashboard di WordPress, vai su Utenti > Profilo e scorri verso il basso fino alla sezione “Password dell’applicazione”. Inserisci un nome per la tua password e clicca su “Aggiungi nuova password dell’applicazione“.

In questo modo verrà generata una password da utilizzare nell’applicazione. Assicurati di copiare e incollare la password in un posto sicuro, perché questa è l’unica occasione in cui potrai vederla. Se la perdi, dovrai crearne una nuova.

WordPress richiede una connessione HTTPS per generare una password dell’applicazione. Se non vedi questa sezione nel tuo profilo utente, verifica che il tuo sito sia accessibile tramite HTTPS. Per ulteriori informazioni, consulta la documentazione ufficiale.

Testare l’interare catena in Postman

Prima di configurare Claude Desktop, ti consiglio di testare l’intera catena in Postman, poiché ciò rende la risoluzione dei problemi molto più semplice e veloce.

Passo 1: Provare l’handshake iniziale

Per prima cosa, prova l’handshake iniziale inviando la seguente richiesta POST:

https://yoursite.com/wp-json/mcp/mcp-adapter-default-server

La richiesta deve essere autenticata. Quando crei una nuova richiesta HTTP in Postman, seleziona Authorization > Basic Auth e inserisci il tuo nome utente WordPress e la password dell’applicazione.

Impostare Authorization: Basic Auth in Postman
Impostare Authorization: Basic Auth in Postman

Poi, aggiungi le seguenti intestazioni:

Content-Type: application/json
Accept: application/json, text/event-stream
Impostare le intestazioni della richiesta in Postman
Impostare le intestazioni della richiesta in Postman

Passa alla scheda Body, seleziona raw > JSON e imposta il seguente corpo della richiesta:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"postman","version":"1.0"}}}
Impostare il corpo della richiesta in Postman
Impostare il corpo della richiesta in Postman

Ora puoi cliccare sul pulsante Invia. Se il server MCP funziona correttamente, vedrai un codice di stato 200 OK e la risposta JSON mostrata nell’immagine qui sotto:

Il corpo della risposta del server MCP in Postman
Il corpo della risposta del server MCP in Postman

La risposta dovrebbe includere l’intestazione mcp-session-id. Copia questo valore perché ti servirà per il prossimo test.

Le intestazioni della risposta del server MCP in Postman
Le intestazioni della risposta del server MCP in Postman

Passo 2: Verificare che l’abilità sia visibile

Ora devi verificare che la tua ability sia visibile. Userai lo stesso URL e la stessa autenticazione Basic. Basta aggiungere l’intestazione mcp-session-id a quelle che hai già inserito e utilizzare il seguente oggetto JSON nel corpo della richiesta:

{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"mcp-adapter-discover-abilities","arguments":{}}}

L’immagine seguente mostra il corpo della risposta del server MCP:

Il corpo della risposta del server MCP in Postman
Il corpo della risposta del server MCP in Postman

L’oggetto di risposta JSON dovrebbe includere il nome della tua abilità (nel nostro esempio, kinsta-plugin/create-draft).

Passo 3: Eseguire l’abilità da Postman

Infine, proviamo a eseguire la nostra ability da Postman. L’URL, l’autenticazione Basic e le intestazioni rimangono gli stessi. Cambia solo il corpo della richiesta, che va impostato come segue:

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp-adapter-execute-ability","arguments":{"ability_name":"kinsta-plugin/create-draft","parameters":{"title":"Postman test","content":"Test content from Postman"}}}}
  • method indica al server MCP di utilizzare uno degli strumenti predefiniti del server (tools/call).
  • params.name è lo strumento generico (mcp-adapter-execute-ability) responsabile dell’esecuzione dell’abilità specificata di seguito.
  • params.arguments.ability_name è l’identificatore completo dell’abilità da eseguire (kinsta-plugin/create-draft).
  • params.arguments.parameters è l’oggetto che contiene gli argomenti richiesti dallo schema di input dell’abilità (title e content).

Ora clicca su Invia per inviare la richiesta. Dovresti ricevere uno stato 200 OK e la seguente risposta:

Un corpo di risposta corretto in Postman
Un corpo di risposta corretto in Postman

Successivamente, apri la dashboard di amministrazione di WordPress e verifica che la bozza di Postman test sia presente.

Se ci hai seguito fin qui senza problemi o errori, puoi passare alla fase finale: la configurazione di Claude Desktop.

Configurare Claude Desktop

Ora devi collegare Claude Desktop al tuo sito WordPress usando il proxy ufficiale @automattic/mcp-wordpress-remote. Questo converte le chiamate MCP tramite STDIO in richieste HTTP autenticate all’API REST di WordPress.

Passo 1: Modificare il file di configurazione

Apri il file di configurazione di Claude Desktop direttamente dall’applicazione cliccando sull’icona con il tuo nome nell’angolo in basso a sinistra, quindi vai su Settings > Developer > Edit Config.

Come accedere al file di configurazione di Claude Desktop
Come accedere al file di configurazione di Claude Desktop

Questo ti porterà direttamente al file claude_desktop_config.json. Apri il file e sostituisci il contenuto attuale con quanto segue:

{
  "mcpServers": {
  "wordpress-kinsta": {
    "command": "npx",
    "args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
    "env": {
    "WP_API_URL": "https://yoursite.com/wp-json/mcp/mcp-adapter-default-server",
    "WP_API_USERNAME": "your-wp-username",
    "WP_API_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
    "OAUTH_ENABLED": "false"
    }
  }
  }
}

Assicurati di sostituire i segnaposto con i tuoi dati effettivi, poi salva il file e chiudi completamente Claude Desktop dalla barra delle applicazioni — non limitarti a chiudere la finestra, perché potrebbe continuare a funzionare in background.

Passo 2: Verificare la connessione in Claude Desktop

Torna su Claude Desktop e vai su Il tuo nome > Settings > Developer. Qui troverai ora l’elenco dei server MCP locali. Se hai seguito tutti i passaggi precedenti, dovresti vedere una scheda di riepilogo per il server wordpress-kinsta con lo stato “in esecuzione”.

Server MCP locali in Claude Desktop
Server MCP locali in Claude Desktop

Ora chiedi a Claude di elencare gli strumenti disponibili sul server wordpress-kinsta. Claude Desktop risponderà elencando gli strumenti come mostrato nell’immagine qui sotto:

Lista degli strumenti disponibili sul server MCP
Claude Desktop elenca gli strumenti disponibili sul server MCP.

Come detto prima, non è necessario conoscere gli identificatori di ogni abilità. Basta spiegare all’AI cosa vuoi che faccia, e il modello individuerà le abilità registrate, troverà quella giusta insieme ai suoi parametri e infine la eseguirà con i valori corretti.

Una richiesta in linguaggio naturale in Claude Desktop
Una richiesta in linguaggio naturale in Claude Desktop.

Per avere maggiori dettagli su una specifica abilità, ti verrà chiesto di autorizzare Claude a utilizzare la funzione Get Ability Info dal server MCP di wordpress-kinsta. Una volta approvata la richiesta, Claude ti fornirà tutti i dettagli dell’abilità.

Claude fornisce i dettagli dell’abilità richiesta
Claude fornisce i dettagli dell’abilità richiesta

Chiedere all’AI di eseguire l’abilità

Infine, puoi inviare a Claude la tua prima richiesta per creare una bozza di post. Ovviamente, chiederai a Claude di generare il testo utilizzando un prompt che fornisca linee guida specifiche. L’immagine qui sotto mostra un esempio:

Un esempio di prompt che richiede la generazione di una bozza su un sito WordPress
Un esempio di prompt che richiede la generazione di una bozza su un sito WordPress

Autorizza Claude a eseguire l’operazione e aspetta qualche secondo per il risultato. Una volta completata l’operazione, nella chat vedrai qualcosa di simile all’immagine qui sotto:

Claude conferma la creazione della bozza del post
Claude conferma la creazione della bozza del post

Ora entra nella tua dashboard di amministrazione di WordPress e vai alla schermata Post. Qui dovresti trovare la tua bozza con il titolo che hai scelto. Aprila e dai un’occhiata all’editor:

La bozza richiesta nell’editor a blocchi
La bozza richiesta nell’editor a blocchi

E sì, il risultato è davvero incredibile, considerando che ci sono voluti solo pochi secondi per generarlo.

Va notato, tuttavia, che il contenuto prodotto è in HTML puro. Questo perché il nostro plugin non include la logica per mappare le sezioni di contenuto nei blocchi di Gutenberg.

La bozza di un post di WordPress nell'editor di codice
Il contenuto del post non è strutturato in blocchi Gutenberg

Abbiamo quindi ripetuto la richiesta, questa volta chiedendo a Claude di formattare il contenuto in blocchi Gutenberg. Ecco la risposta che abbiamo ricevuto nella chat:

Esempio di risposta in Claude Desktop.
Claude conferma che il contenuto del post è stato strutturato in blocchi Gutenberg.

Ed ecco la bozza del post nell’editor di codice di WordPress:

Il contenuto del post è ora strutturato in blocchi Gutenberg.
Il contenuto del post è ora strutturato in blocchi Gutenberg.

Perché un sito WordPress agentico ha bisogno di un’infrastruttura ad alte prestazioni

Collegare il tuo sito WordPress a un modello di AI tramite il Model Context Protocol cambia radicalmente la natura del sito stesso. Non si tratta più solo di servire pagine statiche da una cache o di rispondere alle richieste dei singoli utenti. Per comunicare con il client AI tramite MCP, WordPress deve essere in grado di gestire un tipo di carico di richieste completamente diverso.

Pensa che un agente AI può eseguire dozzine di chiamate REST in pochi secondi: una sequenza che nessun utente umano potrebbe mai eseguire in così rapida successione. Inoltre, le richieste MCP aggirano completamente la cache delle pagine e colpiscono direttamente i tuoi thread PHP ad ogni singolo handshake. Questo modello richiede uno stack PHP/database ottimizzato per le prestazioni; altrimenti, rischi dei timeout nel bel mezzo di un’operazione critica (come la creazione programmatica di una bozza di post).

Per quanto riguarda le funzionalità pubbliche, la sicurezza è un altro aspetto fondamentale perché ogni funzionalità esposta tramite MCP è un endpoint che deve essere protetto. Sebbene l’API permetta di definire un permission_callback e richieda che le richieste siano autenticate tramite una password dell’applicazione, un provider di hosting che offra misure di sicurezza rigorose— come firewall per applicazioni web, isolamento dei container, certificati SSL automatizzati e blocco degli IP— riduce drasticamente la superficie di attacco e mitiga i rischi di intrusioni non autorizzate nel tuo sito.

Disporre di ambienti di staging che funzionano su HTTPS utilizzando lo stesso identico stack tecnologico del sito live è un requisito imprescindibile quando si testano le funzionalità registrate sul tuo sito prima di distribuirle in produzione. Inoltre, l’accesso a strumenti di sviluppo come SSH e WP-CLI è indispensabile per realizzare un’integrazione affidabile dell’AI sul protocollo MCP.

Anche l’osservabilità è un requisito strategico per un sito web che dialoga costantemente con strumenti di AI. Accedere a uno strumento APM e ai log del server è fondamentale per capire cosa succede dietro le quinte, diagnosticare perché una richiesta HTTP potrebbe fallire in modo silenzioso e identificare cosa sta causando colli di bottiglia all’interno dell’architettura del tuo sito.

Per tutti questi motivi, oggi più che mai è fondamentale scegliere un’infrastruttura e un servizio di hosting che forniscano l’architettura, gli strumenti e il supporto di alto livello richiesti da un moderno sito WordPress. Kinsta offre tutto questo e molto altro ancora in un’unica dashboard centralizzata.

Da lì puoi accedere direttamente al sito, avviare il monitoraggio delle prestazioni, recuperare i dati di accesso SSH, scaricare i log del sito e contattare il nostro team di supporto specializzato. Se le tue automazioni basate sull’AI richiedono ancora più potenza di calcolo, puoi ottimizzare le prestazioni PHP all’istante o aggiungere l’add-on ambiente di staging premium, per garantire la massima reattività sia in fase di test che in produzione.

Il futuro di WordPress è agentico

WordPress si sta evolvendo da un CMS tradizionale a un vero e proprio hub di applicazioni agentico. L’introduzione dell’API Abilities e dell’AI Client è la prova definitiva che il futuro del web non si basa più esclusivamente sulle interazioni umane, ma coinvolge in modo significativo macchine e agenti intelligenti che lavorano in modo autonomo in background.

Che si tratti di convertire un file audio in un post, integrare un flusso di lavoro automatizzato tramite GitHub Actions o creare un collegamento perfetto tra sito e client Claude Desktop, WordPress è pronto a gestire richieste complesse e a tradurre i dati in ingresso in blocchi Gutenberg nativi. Sta a te garantire alle tue applicazioni la potenza, la sicurezza e la scalabilità di cui hanno bisogno, scegliendo un partner di hosting leader del settore come Kinsta.

Hai già dato un’occhiata ai nostri piani? Se sei in dubbio su quale si adatti meglio al flusso di lavoro specifico del tuo sito, il nostro team di vendita sarà più che felice di rispondere a tutte le tue domande.

Carlo Daniele Kinsta

Carlo è cultore appassionato di webdesign e front-end development. Gioca con WordPress da oltre 20 anni, anche in collaborazione con università ed enti educativi italiani ed europei. Su WordPress ha scritto centinaia di articoli e guide, pubblicati sia in siti web italiani e internazionali, che su riviste a stampa. Lo trovate su LinkedIn.