{"id":83343,"date":"2026-02-25T10:55:28","date_gmt":"2026-02-25T09:55:28","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=83343&#038;preview=true&#038;preview_id=83343"},"modified":"2026-03-02T12:08:00","modified_gmt":"2026-03-02T11:08:00","slug":"comandi-wp-cli-personalizzati-acorn","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/","title":{"rendered":"Come creare comandi WP-CLI personalizzati e automatizzare la manutenzione di WordPress con Acorn"},"content":{"rendered":"<p>Probabilmente hai degli script PHP che svolgono varie attivit\u00e0, come la pulizia dei metadati dei post orfani o l&#8217;eliminazione dei transienti scaduti. Nel corso del tempo, questa collezione cresce e vive in un file di tema, in una cartella di plugin o in una directory nascosta. Acorn ci aiuta a controllare questa disorganizzazione portando la Artisan Console di Laravel su WordPress.<\/p>\n<p>Ci\u00f2 significa che puoi creare comandi WP-CLI personalizzati con file di classe strutturati che centralizzano la tua logica di manutenzione. Questi comandi vengono eseguiti in modo coerente tra sviluppo, staging e produzione utilizzando indicatori di avanzamento, output di tabelle formattate, gestione corretta degli errori e altro ancora. Puoi quindi attivarli tramite SSH, programmarli con cron job o eseguirli durante le distribuzioni.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Come installare Acorn ed eseguire i comandi<\/h2>\n<p>Il primo passo \u00e8 installare le dipendenze necessarie. Acorn necessita di <a href=\"https:\/\/kinsta.com\/it\/blog\/php-8-2\/\">PHP 8.2<\/a> o di una versione superiore, <a href=\"https:\/\/kinsta.com\/it\/blog\/installare-composer\/\">Composer<\/a> per la gestione delle dipendenze e <a href=\"https:\/\/kinsta.com\/it\/blog\/wp-cli\/\">WP-CLI<\/a> in esecuzione sul server. Kinsta include WP-CLI su tutti i piani di hosting, quindi puoi iniziare subito a creare comandi.<\/p>\n<p>Installa Acorn tramite Composer utilizzando <code>composer require roots\/acorn<\/code> nella root del progetto. Poi aggiungi il codice di avvio al file <code>functions.php<\/code> del tuo tema o al file principale del plugin:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nuse RootsAcornApplication;\nif (! class_exists(RootsAcornApplication::class)) {\n    wp_die(\n        __('You need to install Acorn to use this site.', 'domain'),\n        '',\n        [\n            'link_url' =&gt; 'https:\/\/roots.io\/acorn\/docs\/installation\/',\n            'link_text' =&gt; __('Acorn Docs: Installation', 'domain'),\n        ]\n    );\n}\n\nadd_action('after_setup_theme', function () {\n    Application::configure()\n        -&gt;withProviders([\n            AppProvidersThemeServiceProvider::class,\n        ])\n        -&gt;boot();\n}, 0);\n<\/code><\/pre>\n<p>La configurazione zero-config memorizza la cache dell&#8217;applicazione e i log nella <a href=\"https:\/\/kinsta.com\/it\/blog\/la-cache-di-wordpress\/\">directory della cache di WordPress<\/a> all&#8217;indirizzo <code>[wp-content]\/cache\/acorn\/<\/code>, mentre i tuoi comandi si trovano nella directory <code>app\/<\/code> del tema.<\/p>\n<p>La struttura tradizionale segue le convenzioni di Laravel, come le directory dedicate a <code>app\/<\/code>, <code>config\/<\/code>, <code>storage\/<\/code> e <code>resources\/<\/code> nella root del progetto. Per configurare questa struttura basta una riga:<\/p>\n<pre><code class=\"language-bash\">wp acorn acorn:init storage && wp acorn vendor:publish --tag=acorn\n<\/code><\/pre>\n<p>Se esegui <code>wp acorn list<\/code>, questo verifica la tua installazione visualizzando tutti i comandi Acorn disponibili. Da questo momento, tutti i comandi personalizzati che crei sono memorizzati nella cartella <code>app\/Console\/Commands\/<\/code>. Acorn scopre automaticamente tutte le classi di comandi presenti in questa posizione e le registra con WP-CLI.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Collegati al server tramite SSH, quindi esegui <code>wp acorn<\/code> seguito dal nome del comando. Per i clienti Kinsta, i <a href=\"https:\/\/kinsta.com\/help\/connect-to-ssh\/\">dettagli della connessione SSH<\/a> si trovano nella dashboard MyKinsta.<\/p>\n<\/aside>\n\n<h2>Creare il primo comando Artisan<\/h2>\n<p>Il comando Artisan <code>wp acorn make:command CleanupCommand<\/code> genera il file con la struttura che ti servir\u00e0. Contiene tre elementi chiave di cui ogni comando Artisan ha bisogno:<\/p>\n<ul>\n<li>Una propriet\u00e0 <code>$signature<\/code> che definisce il nome del comando e le opzioni.<\/li>\n<li>La propriet\u00e0 <code>$description<\/code> per il testo di aiuto.<\/li>\n<li>Un metodo <code>handle()<\/code> dove risiede la logica del comando.<\/li>\n<\/ul>\n<p>In questo caso, costruisce <code>app\/Console\/Commands\/CleanupCommand.php<\/code> con una struttura di comando di base:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace AppConsoleCommands;\nuse IlluminateConsoleCommand;\nclass CleanupCommand extends Command\n{\n    protected $signature = 'app:cleanup';\n    protected $description = 'Command description';\n    public function handle()\n    {\n        \/\/\n    }\n}\n<\/code><\/pre>\n<p>La propriet\u00e0 <code>$signature<\/code> utilizza una sintassi specifica:<\/p>\n<ul>\n<li>Un comando di base ha bisogno solo di un nome, come <code>cleanup:run<\/code>.<\/li>\n<li>Gli argomenti obbligatori si aggiungono avvolgendoli tra parentesi graffe (<code>cleanup:run {days}<\/code>, ad esempio).<\/li>\n<li>Gli argomenti facoltativi hanno un punto interrogativo: <code>cleanup:run {days?}<\/code>.<\/li>\n<li>Le opzioni utilizzano doppi trattini: <code>cleanup:run {--force} {--limit=100}<\/code>.<\/li>\n<\/ul>\n<p>Quindi, includi una descrizione del comando e la tua logica di base:<\/p>\n<pre><code class=\"language-php\">protected $signature = 'cleanup:test {--dry-run : Preview changes without executing}';\nprotected $description = 'Test cleanup command';\npublic function handle()\n{\n    $dryRun = $this-&gt;option('dry-run');\n\n    if ($dryRun) {\n        $this-&gt;components-&gt;info('Running in dry-run mode');\n    }\n\n    $this-&gt;components-&gt;info('Cleanup command executed');\n\n    return 0;\n}\n<\/code><\/pre>\n<p>Puoi verificarlo utilizzando <code>wp acorn cleanup:test --dry-run<\/code>. Il comando produce messaggi formattati utilizzando il sistema di componenti di Artisan. Il metodo <code>$this-&gt;components-&gt;info()<\/code> mostra i messaggi di successo in verde. Puoi anche usare <code>$this-&gt;components-&gt;error()<\/code> per gli errori, <code>$this-&gt;components-&gt;warn()<\/code> per gli avvertimenti e <code>$this-&gt;line()<\/code> per l&#8217;output in testo normale.<\/p>\n<h2>Come creare 3 pratici comandi di manutenzione<\/h2>\n<p>Ecco alcuni esempi che aiutano ad affrontare le attivit\u00e0 di manutenzione del database che si presentano in molti siti web WordPress.<\/p>\n<p>Sebbene ogni comando includa la gestione degli errori e segua in larga misura gli standard di codifica di WordPress per mantenere i tuoi dati al sicuro, dovresti comunque utilizzarli come scheletro per i tuoi progetti piuttosto che fare un semplice copia-incolla.<\/p>\n<h3>1. Pulire i metadati dei post orfani<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/it\/blog\/ultimo-aggiornamento\/\">I metadati dei post<\/a> rimangono anche dopo la loro cancellazione. Questo accade quando i plugin aggirano gli hook di cancellazione di WordPress e lasciano voci di metadati che puntano a post che non esistono pi\u00f9. Con il tempo, questo ingombro rallenta le query del database.<\/p>\n<p>Una volta creato il comando con <code>wp acorn make:command CleanupOrphanedMeta<\/code>, puoi iniziare con la struttura e la firma della classe del comando:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace AppConsoleCommands;\nuse IlluminateConsoleCommand;\nclass CleanupOrphanedMeta extends Command\n{\n    protected $signature = 'maintenance:cleanup-orphaned-meta \n                            {--dry-run : Preview orphans without deleting}';\n    \n    protected $description = 'Remove orphaned post metadata from wp_postmeta';\n    public function handle()\n    {\n        global $wpdb;\n\n        $dryRun = $this-&gt;option('dry-run');\n\n        $this-&gt;components-&gt;info('Scanning for orphaned post metadata...');\n<\/code><\/pre>\n<p>Il comando utilizza una query <code>LEFT JOIN<\/code> per trovare questi record orfani. Lo schema verifica la presenza di valori <code>NULL<\/code> nella tabella dei post. Se il join restituisce <code>NULL<\/code>, i metadati appartengono a un post cancellato:<\/p>\n<pre><code class=\"language-php\">        \/\/ Find orphaned metadata\n        $orphans = $wpdb-&gt;get_results(\"\n            SELECT pm.meta_id, pm.post_id, pm.meta_key \n            FROM {$wpdb-&gt;postmeta} pm\n            LEFT JOIN {$wpdb-&gt;posts} p ON pm.post_id = p.ID\n            WHERE p.ID IS NULL\n            LIMIT 1000\n        \");\n\n        if (empty($orphans)) {\n            $this-&gt;components-&gt;info('No orphaned metadata found');\n            return 0;\n        }\n<\/code><\/pre>\n<p>Quando il comando trova i post orfani, mostra un conteggio e campiona alcuni record se sei in modalit\u00e0 dry-run. Dovrai verificare cosa viene cancellato prima di eseguire il commit:<\/p>\n<pre><code class=\"language-php\">        $count = count($orphans);\n        $this-&gt;components-&gt;warn(\"Found {$count} orphaned metadata records\");\n        if ($dryRun) {\n            $this-&gt;newLine();\n            $this-&gt;line('Sample orphaned records:');\n\n            foreach (array_slice($orphans, 0, 5) as $orphan) {\n                $this-&gt;line(\"  \u2192 Post ID {$orphan-&gt;post_id}: {$orphan-&gt;meta_key}\");\n            }\n\n            return 0;\n        }\n<\/code><\/pre>\n<p>L&#8217;eliminazione effettiva utilizza <code>$wpdb-&gt;prepare()<\/code> per evitare attacchi <a href=\"https:\/\/kinsta.com\/it\/blog\/sql-injection\/\">SQL injection<\/a>. Il comando elabora 1.000 record alla volta, evitando cos\u00ec problemi di memoria in siti con milioni di voci di metadati:<\/p>\n<pre><code class=\"language-php\">        \/\/ Delete orphaned records\n        $metaIds = array_map(function($orphan) {\n            return $orphan-&gt;meta_id;\n        }, $orphans);\n\n        $placeholders = implode(',', array_fill(0, count($metaIds), '%d'));\n\n        $deleted = $wpdb-&gt;query(\n            $wpdb-&gt;prepare(\n                \"DELETE FROM {$wpdb-&gt;postmeta} WHERE meta_id IN ({$placeholders})\",\n                ...$metaIds\n            )\n        );\n\n        if ($deleted === false) {\n            $this-&gt;components-&gt;error('Failed to delete orphaned metadata');\n            return 1;\n        }\n\n        $this-&gt;components-&gt;info(\"Deleted {$deleted} orphaned metadata records\");\n        return 0;\n    }\n}\n<\/code><\/pre>\n<p>Per eseguire il comando, usa <code>wp acorn maintenance:cleanup-orphaned-meta --dry-run<\/code>.<\/p>\n<h3>2. Eliminare i transient scaduti<\/h3>\n<p>WordPress memorizza <a href=\"https:\/\/developer.wordpress.org\/apis\/transients\/\" target=\"_blank\" rel=\"noopener noreferrer\">i transient \/a&gt; in <code>wp_options<\/code> con date di scadenza. Mentre un <a href=\"https:\/\/kinsta.com\/it\/blog\/cron-job-wordpress\/\">cron job<\/a> giornaliero li ripulisce, a volte \u00e8 necessario eseguire una pulizia manuale durante le finestre di manutenzione o quando il gonfiore transient diventa un problema.<\/p>\n<p>Dopo aver generato il comando con <code>wp acorn make:command CleanupTransients<\/code>, puoi impostare la struttura del comando:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace AppConsoleCommands;\nuse IlluminateConsoleCommand;\nclass CleanupTransients extends Command\n{\n    protected $signature = 'maintenance:cleanup-transients';\n    protected $description = 'Delete expired transients from wp_options';\n    public function handle()\n    {\n        global $wpdb;\n\n        $this-&gt;components-&gt;info('Deleting expired transients...');\n<\/code><\/pre>\n<p>Questa query di cancellazione utilizza la sintassi multi-tabella <code>DELETE<\/code> per rimuovere sia il transient  che la sua opzione di timeout in una sola volta. La query trova i record di timeout in cui il timestamp di scadenza \u00e8 passato:<\/p>\n<pre><code class=\"language-php\">        \/\/ Delete expired regular transients\n        $deleted = $wpdb-&gt;query(\n            $wpdb-&gt;prepare(\n                \"DELETE a, b FROM {$wpdb-&gt;options} a, {$wpdb-&gt;options} b\n                WHERE a.option_name LIKE %s\n                AND a.option_name NOT LIKE %s\n                AND b.option_name = CONCAT('_transient_timeout_', SUBSTRING(a.option_name, 12))\n                AND b.option_value &lt; %d\",\n                $wpdb-&gt;esc_like('_transient_') . '%',\n                $wpdb-&gt;esc_like('_transient_timeout_') . '%',\n                time()\n            )\n        );\n<\/code><\/pre>\n<p>Controlla anche gli errori e tiene traccia del conteggio delle eliminazioni:<\/p>\n<pre><code class=\"language-php\">        if ($deleted === false) {\n            $this-&gt;components-&gt;error('Failed to delete transients');\n            return 1;\n        }\n\n        $transientCount = $deleted;\n<\/code><\/pre>\n<p>Nelle <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-multisite\/\">installazioni multisito<\/a>, il comando esegue una seconda query per i transient dei siti. Queste utilizzano prefissi di tabella diversi ma seguono lo stesso schema di cancellazione:<\/p>\n<pre><code class=\"language-php\">        \/\/ Delete expired site transients (multisite)\n        if (is_multisite()) {\n            $siteDeleted = $wpdb-&gt;query(\n                $wpdb-&gt;prepare(\n                    \"DELETE a, b FROM {$wpdb-&gt;options} a, {$wpdb-&gt;options} b\n                    WHERE a.option_name LIKE %s\n                    AND a.option_name NOT LIKE %s\n                    AND b.option_name = CONCAT('_site_transient_timeout_', SUBSTRING(a.option_name, 17))\n                    AND b.option_value &lt; %d\",\n                    $wpdb-&gt;esc_like('_site_transient_') . '%',\n                    $wpdb-&gt;esc_like('_site_transient_timeout_') . '%',\n                    time()\n                )\n            );\n\n            if ($siteDeleted !== false) {\n                $transientCount += $siteDeleted;\n            }\n        }\n\n        $this-&gt;components-&gt;info(\"Deleted {$transientCount} expired transients\");\n\n        return 0;\n    }\n}\n<\/code><\/pre>\n<p>Per eseguire il comando, lancia <code>wp acorn maintenance:cleanup-transients<\/code>.<\/p>\n<h3>3. Controllare le opzioni autocaricate<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/it\/blog\/tabella-wp_options-e-dati-automatici\/\">Le opzioni autocaricate<\/a> vengono caricate ad ogni richiesta che il tuo sito WordPress gestisce. Inizierai a notare rallentamenti e picchi di consumo della memoria quando questi dati superano 1MB. Questo comando individua le opzioni pi\u00f9 caricate in modo da poter individuare i plugin che causano il gonfiore.<\/p>\n<p>Per prima cosa, crea il comando di verifica con <code>wp acorn make:command AuditAutoload<\/code>. Poi, definisci la firma del comando con una soglia configurabile:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace AppConsoleCommands;\nuse IlluminateConsoleCommand;\nclass AuditAutoload extends Command\n{\n    protected $signature = 'maintenance:audit-autoload \n                            {--threshold=1000000 : Size threshold in bytes}';\n\n    protected $description = 'Audit autoloaded options size';\n    public function handle()\n    {\n        global $wpdb;\n\n        $threshold = (int) $this-&gt;option('threshold');\n\n        $this-&gt;components-&gt;info('Calculating autoloaded options size...');\n<\/code><\/pre>\n<p>Da qui, calcola la dimensione totale di tutte le opzioni caricate automaticamente:<\/p>\n<pre><code class=\"language-php\">        \/\/ Get total autoload size\n        $result = $wpdb-&gt;get_row(\n            \"SELECT \n                SUM(LENGTH(option_value)) as total_bytes,\n                COUNT(*) as total_count\n            FROM {$wpdb-&gt;options}\n            WHERE autoload = 'yes'\"\n        );\n\n        $totalBytes = (int) $result-&gt;total_bytes;\n        $totalCount = (int) $result-&gt;total_count;\n        $totalMb = round($totalBytes \/ 1024 \/ 1024, 2);\n\n        $this-&gt;newLine();\n        $this-&gt;line(\"Total autoloaded: {$totalMb} MB ({$totalCount} options)\");\n<\/code><\/pre>\n<p>Il comando esegue una query per le opzioni superiori alla tua soglia, le ordina per dimensione e limita i risultati alle 20 pi\u00f9 grandi:<\/p>\n<pre><code class=\"language-php\">        \/\/ Get largest autoloaded options\n        $largeOptions = $wpdb-&gt;get_results(\n            $wpdb-&gt;prepare(\n                \"SELECT option_name, LENGTH(option_value) as size_bytes\n                FROM {$wpdb-&gt;options}\n                WHERE autoload = 'yes'\n                AND LENGTH(option_value) &gt; %d\n                ORDER BY size_bytes DESC\n                LIMIT 20\",\n                $threshold\n            )\n        );\n\n        if (empty($largeOptions)) {\n            $this-&gt;components-&gt;info('No options exceed the threshold');\n            return 0;\n        }\n<\/code><\/pre>\n<p>Il metodo <code>$this-&gt;table()<\/code> di Artisan formatta questi risultati come una tabella ASCII: leggere i dati tabellari nel tuo terminale significa analizzare l&#8217;output grezzo della query:<\/p>\n<pre><code class=\"language-php\">        $this-&gt;newLine();\n        $this-&gt;components-&gt;warn('Large autoloaded options:');\n        $this-&gt;newLine();\n\n        $tableData = [];\n\n        foreach ($largeOptions as $option) {\n            $sizeKb = round($option-&gt;size_bytes \/ 1024, 2);\n            $tableData[] = [\n                $option-&gt;option_name,\n                $sizeKb . ' KB'\n            ];\n        }\n\n        $this-&gt;table(\n            ['Option Name', 'Size'],\n            $tableData\n        );\n<\/code><\/pre>\n<p>Il comando lancia un avviso quando il carico automatico totale supera i 3 MB, il che indica un problema di prestazioni da risolvere:<\/p>\n<pre><code class=\"language-php\">        if ($totalBytes &gt; 3000000) {\n            $this-&gt;newLine();\n            $this-&gt;components-&gt;error('Warning: Total autoload exceeds 3MB');\n        }\n\n        return 0;\n    }\n}\n<\/code><\/pre>\n<p>Per eseguire la verifica, usa <code>wp acorn maintenance:audit-autoload --threshold=500000<\/code>.<\/p>\n<h2>Come accedere ai dati di WordPress all&#8217;interno dei comandi<\/h2>\n<p>Le funzioni di WordPress funzionano all&#8217;interno dei tuoi metodi di comando perch\u00e9 Acorn si avvia all&#8217;interno del ciclo di vita di WordPress. Questo significa che puoi chiamare alcune funzioni come <code>get_posts()<\/code> o <code>get_option()<\/code> senza alcuna configurazione speciale:<\/p>\n<pre><code class=\"language-php\">public function handle()\n{\n    $posts = get_posts([\n        'post_type' =&gt; 'post',\n        'post_status' =&gt; 'publish',\n        'numberposts' =&gt; 10,\n    ]);\n\n    foreach ($posts as $post) {\n        $this-&gt;line($post-&gt;post_title);\n    }\n\n    return 0;\n}\n<\/code><\/pre>\n<p>Per le interrogazioni dirette al database, dichiara il globale <code>$wpdb<\/code> all&#8217;inizio del metodo:<\/p>\n<pre><code class=\"language-php\">public function handle()\n{\n    global $wpdb;   \n\n    $count = $wpdb-&gt;get_var(\n        \"SELECT COUNT(*) FROM {$wpdb-&gt;posts} WHERE post_status = 'publish'\"\n    );\n\n    $this-&gt;line(\"Published posts: {$count}\");\n\n    return 0;\n}\n<\/code><\/pre>\n<p><code>$wpdb-&gt;prepare()<\/code> \u00e8 ideale quando le tue query includono variabili o input dell&#8217;utente, in quanto aiuta a prevenire gli attacchi di SQL injection:<\/p>\n<pre><code class=\"language-php\">$status = 'publish';\n$postType = 'post';\n$results = $wpdb-&gt;get_results(\n    $wpdb-&gt;prepare(\n        \"SELECT ID, post_title FROM {$wpdb-&gt;posts} \n        WHERE post_status = %s AND post_type = %s\",\n        $status,\n        $postType\n    )\n);\n<\/code><\/pre>\n<p>Se verifichi la presenza di <code>false<\/code> dopo ogni operazione sul database, potrai individuare gli errori:<\/p>\n<pre><code class=\"language-php\">$updated = $wpdb-&gt;update(\n    $wpdb-&gt;posts,\n    ['post_status' =&gt; 'draft'],\n    ['ID' =&gt; 123],\n    ['%s'],\n    ['%d']\n);\n\nif ($updated === false) {\n    $this-&gt;components-&gt;error('Database update failed');\n    return 1;\n}\n<\/code><\/pre>\n<p>I <a href=\"https:\/\/kinsta.com\/it\/blog\/custom-post-type-wordpress\/\">tipi di post<\/a> e le tassonomie <a href=\"https:\/\/kinsta.com\/it\/blog\/custom-post-type-wordpress\/\">personalizzate<\/a> funzionano attraverso le funzioni standard di WordPress:<\/p>\n<pre><code class=\"language-php\">$terms = get_terms([\n    'taxonomy' =&gt; 'category',\n    'hide_empty' =&gt; false,\n]);\n\nforeach ($terms as $term) {\n    wp_update_term($term-&gt;term_id, 'category', [\n        'description' =&gt; 'Updated via command',\n    ]);\n}\n<\/code><\/pre>\n<h2>I comandi WP-CLI personalizzati sono semplici da usare con Acorn e Artisan Console<\/h2>\n<p><a href=\"https:\/\/roots.io\/acorn\/\" target=\"_blank\" rel=\"noopener noreferrer\">Acorn<\/a> permette di accedere alle classi di comandi strutturate di Laravel, ai componenti di output formattati, alla corretta gestione degli errori e molto altro ancora, pur dandoti pieno accesso alle funzioni e ai dati di WordPress.<\/p>\n<p>Puoi integrare i comandi attraverso l&#8217;accesso SSH e la programmazione cron all&#8217;interno di Kinsta. Puoi anche aggiungere comandi ai tuoi script di distribuzione per automatizzare la manutenzione, ad esempio utilizzando i flussi di lavoro di <a href=\"https:\/\/kinsta.com\/blog\/github-actions\/\">GitHub Actions<\/a>.<\/p>\n<p>Se non vedi l&#8217;ora di centralizzare le attivit\u00e0 di manutenzione di WordPress con comandi WP-CLI personalizzati, l&#8217;<a href=\"https:\/\/kinsta.com\/it\/hosting-wordpress\/\">hosting WordPress gestito di Kinsta<\/a> include l&#8217;accesso SSH e WP-CLI su tutti i piani.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Probabilmente hai degli script PHP che svolgono varie attivit\u00e0, come la pulizia dei metadati dei post orfani o l&#8217;eliminazione dei transienti scaduti. Nel corso del tempo, &#8230;<\/p>\n","protected":false},"author":287,"featured_media":83344,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[25873],"class_list":["post-83343","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-sviluppo-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Crea comandi WP-CLI e automatizza la manutenzione con Acorn<\/title>\n<meta name=\"description\" content=\"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come creare comandi WP-CLI personalizzati e automatizzare la manutenzione di WordPress con Acorn\" \/>\n<meta property=\"og:description\" content=\"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-25T09:55:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-02T11:08:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Come creare comandi WP-CLI personalizzati e automatizzare la manutenzione di WordPress con Acorn\",\"datePublished\":\"2026-02-25T09:55:28+00:00\",\"dateModified\":\"2026-03-02T11:08:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/\"},\"wordCount\":1251,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/\",\"name\":\"Crea comandi WP-CLI e automatizza la manutenzione con Acorn\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"datePublished\":\"2026-02-25T09:55:28+00:00\",\"dateModified\":\"2026-03-02T11:08:00+00:00\",\"description\":\"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sviluppo di WordPress\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/sviluppo-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come creare comandi WP-CLI personalizzati e automatizzare la manutenzione di WordPress con Acorn\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Crea comandi WP-CLI e automatizza la manutenzione con Acorn","description":"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/","og_locale":"it_IT","og_type":"article","og_title":"Come creare comandi WP-CLI personalizzati e automatizzare la manutenzione di WordPress con Acorn","og_description":"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.","og_url":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2026-02-25T09:55:28+00:00","article_modified_time":"2026-03-02T11:08:00+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Joel Olawanle","Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Come creare comandi WP-CLI personalizzati e automatizzare la manutenzione di WordPress con Acorn","datePublished":"2026-02-25T09:55:28+00:00","dateModified":"2026-03-02T11:08:00+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/"},"wordCount":1251,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/","url":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/","name":"Crea comandi WP-CLI e automatizza la manutenzione con Acorn","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","datePublished":"2026-02-25T09:55:28+00:00","dateModified":"2026-03-02T11:08:00+00:00","description":"Tra WP-CLI, Acorn e WordPress, puoi creare comandi personalizzati che aiutano nella manutenzione del sito. Questo post mostra come fare.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/comandi-wp-cli-personalizzati-acorn\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Sviluppo di WordPress","item":"https:\/\/kinsta.com\/it\/argomenti\/sviluppo-wordpress\/"},{"@type":"ListItem","position":3,"name":"Come creare comandi WP-CLI personalizzati e automatizzare la manutenzione di WordPress con Acorn"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/83343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=83343"}],"version-history":[{"count":4,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/83343\/revisions"}],"predecessor-version":[{"id":83398,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/83343\/revisions\/83398"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/83343\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/83344"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=83343"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=83343"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=83343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}