{"id":64848,"date":"2026-03-02T08:16:55","date_gmt":"2026-03-02T07:16:55","guid":{"rendered":"https:\/\/kinsta.com\/nl\/?p=64848&#038;preview=true&#038;preview_id=64848"},"modified":"2026-03-02T09:17:04","modified_gmt":"2026-03-02T08:17:04","slug":"custom-wp-cli-commandos-acorn","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/","title":{"rendered":"Hoe je met Acorn custom WP-CLI commando&#8217;s maakt en WordPress onderhoud kan automatiseren"},"content":{"rendered":"<p data-start=\"43\" data-end=\"374\">Waarschijnlijk heb je inmiddels een reeks losse PHP-scripts die specifieke taken uitvoeren, zoals het opschonen van oude berichtmetadata of het verwijderen van verlopen transients. In de praktijk groeit die verzameling langzaam maar zeker en raakt ze verspreid over je thema, een pluginmap of een obscure submap waar niemand nog naar omkijkt.<\/p>\n<p>Dit betekent dat je custom WP-CLI-commando\u2019s kunt bouwen met gestructureerde klassebestanden waarin je onderhoudslogica centraal is ondergebracht. Deze commando\u2019s worden consistent uitgevoerd in ontwikkeling, staging en productie, inclusief voortgangsindicatoren, geformatteerde tabeluitvoer, degelijke foutafhandeling en meer. Je kunt ze vervolgens activeren via SSH, plannen met cronjobs of uitvoeren als onderdeel van je deploymentproces.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Acorn installeren en commando&#8217;s uitvoeren<\/h2>\n<p>De eerste stap is het installeren van de dependencies die je nodig hebt. Acorn heeft <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-8-2\/\">PHP 8.2<\/a> of hoger, <a href=\"https:\/\/kinsta.com\/blog\/install-composer\/\">Composer<\/a> voor het beheren van dependencies en <a href=\"https:\/\/kinsta.com\/nl\/blog\/wp-cli\/\">WP-CLI<\/a> op je server nodig. Kinsta levert WP-CLI bij alle hostingpakketten, dus je kunt meteen beginnen met het bouwen van commando&#8217;s.<\/p>\n<p>Je installeert Acorn via Composer met <code>composer require roots\/acorn<\/code> in de project root. Voeg vervolgens de opstartcode toe aan het bestand <code>functions.php<\/code> van je thema of aan je hoofdpluginbestand:<\/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>De zero-config setup slaat de applicatiecache en logs op in de <a href=\"https:\/\/kinsta.com\/nl\/blog\/kinsta-regelt-de-wordpress-caching-zodat-jij-dat-niet-hoeft-te-doen\/\">WordPress cache directory<\/a> op <code>[wp-content]\/cache\/acorn\/<\/code>, terwijl je commando&#8217;s in de <code>app\/<\/code> map van je thema staan.<\/p>\n<p>De traditionele structuur volgt de Laravel conventies, zoals speciale mappen voor <code>app\/<\/code>, <code>config\/<\/code>, <code>storage\/<\/code>, en <code>resources\/<\/code> in je project root. Je stelt dit in met \u00e9\u00e9n regel:<\/p>\n<pre><code class=\"language-bash\">wp acorn acorn:init storage && wp acorn vendor:publish --tag=acorn\n<\/code><\/pre>\n<p>Als je <code>wp acorn list<\/code> uitvoert, controleert dit je installatie door alle beschikbare Acorn commando&#8217;s weer te geven. Vanaf dit punt worden alle custom commando&#8217;s die je maakt opgeslagen in de map <code>app\/Console\/Commands\/<\/code>. Acorn ontdekt automatisch alle commandoklassen op deze locatie en registreert ze bij WP-CLI.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Je maakt verbinding met je server via SSH en voert dan <code>wp acorn<\/code> uit gevolgd door je opdrachtnaam. Voor Kinsta klanten staan deze <a href=\"https:\/\/kinsta.com\/help\/connect-to-ssh\/\">SSH verbindingsgegevens<\/a> in je MyKinsta dashboard.<\/p>\n<\/aside>\n\n<h2>Je eerste Artisan commando maken<\/h2>\n<p>Het <code>wp acorn make:command CleanupCommand<\/code> Artisan commando genereert je bestand met de structuur die je nodig hebt. Het bevat drie belangrijke elementen die elk Artisan commando nodig heeft:<\/p>\n<ul>\n<li>Een <code>$signature<\/code> property die je opdrachtnaam en opties definieert.<\/li>\n<li>De<code>$description<\/code> property voor helptekst.<\/li>\n<li>Een <code>handle()<\/code> methode waar de logica van je commando in staat.<\/li>\n<\/ul>\n<p>In dit geval bouwt het <code>app\/Console\/Commands\/CleanupCommand.php<\/code> met een basiscommandostructuur:<\/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>De property <code>$signature<\/code> gebruikt een specifieke syntaxis:<\/p>\n<ul>\n<li>Een basisopdracht heeft alleen een naam nodig, zoals <code>cleanup:run<\/code>.<\/li>\n<li>Je voegt verplichte argumenten toe door ze tussen accolades te zetten (<code>cleanup:run {days}<\/code>, als voorbeeld).<\/li>\n<li>Optionele argumenten krijgen een vraagteken: <code>cleanup:run {days?}<\/code>.<\/li>\n<li>Opties gebruiken dubbele streepjes: <code>cleanup:run {--force} {--limit=100}<\/code>.<\/li>\n<\/ul>\n<p>Voeg vervolgens een beschrijving van het commando en je basislogica toe:<\/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>Je kunt dit testen met <code>wp acorn cleanup:test --dry-run<\/code>. De opdracht voert geformatteerde berichten uit met behulp van het componentsysteem van Artisan. De methode <code>$this-&gt;components-&gt;info()<\/code> geeft succesberichten in het groen weer. Je kunt ook <code>$this-&gt;components-&gt;error()<\/code> gebruiken voor fouten, <code>$this-&gt;components-&gt;warn()<\/code> voor waarschuwingen en <code>$this-&gt;line()<\/code> voor uitvoer in platte tekst.<\/p>\n<h2>Zo bouw je 3 praktische onderhoudsopdrachten<\/h2>\n<p>Hier zijn enkele voorbeelden die je helpen om database onderhoudstaken aan te pakken die op veel WordPress websites voorkomen.<\/p>\n<p>Hoewel elke opdracht foutafhandeling bevat en grotendeels de WordPress coderingsstandaarden volgt om je gegevens veilig te houden, zou je deze nog steeds moeten gebruiken als een framework voor je eigen projecten in plaats van ze simpelweg te copy-pasten.<\/p>\n<h3>1. Oude bericht metadata opschonen<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/laatst-bijgewerkt\/\">Metadata over berichten<\/a> blijven bestaan nadat je berichten hebt verwijderd. Dit gebeurt wanneer plugins de verwijderhooks van WordPress omzeilen en metadata-items achterlaten die verwijzen naar berichten die niet meer bestaan. Na verloop van tijd vertraagt deze ophoping je database queries.<\/p>\n<p>Zodra je het commando hebt gemaakt met <code>wp acorn make:command CleanupOrphanedMeta<\/code>, kun je beginnen met de structuur en de handtekening van de opdrachtklasse:<\/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>De opdracht gebruikt een <code>LEFT JOIN<\/code> query om deze verweesde records te vinden. Het patroon controleert op <code>NULL<\/code> waarden in de tabel met berichten. Als de join <code>NULL<\/code> teruggeeft, behoren de metadata tot een verwijderd bericht:<\/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>Als het commando oude (orphaned) records vindt, laat het je een telling zien en samples van een paar records als je in de testmodus zit. Je moet controleren wat er wordt verwijderd voordat je het vastlegt:<\/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>De daadwerkelijke verwijdering maakt gebruik van <code>$wpdb-&gt;prepare()<\/code> om <a href=\"https:\/\/kinsta.com\/nl\/blog\/sql-injecties\/\">SQL injectie<\/a> aanvallen te voorkomen. Het commando verwerkt 1000 records per keer, wat geheugenproblemen voorkomt op sites met miljoenen metadata entries:<\/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>Gebruik <code>wp acorn maintenance:cleanup-orphaned-meta --dry-run<\/code> om de opdracht uit te voeren.<\/p>\n<h3>2. Verlopen transients verwijderen<\/h3>\n<p>WordPress slaat <a href=\"https:\/\/developer.wordpress.org\/apis\/transients\/\" target=\"_blank\" rel=\"noopener noreferrer\">transients<\/a> op in <code>wp_options<\/code> met vervaldtijd. Hoewel een dagelijkse <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-cron-job\/\">cronjob<\/a> deze opruimt, moet je soms een handmatige schoonmaak uitvoeren tijdens onderhoudsvensters of wanneer tijdelijke opgeblazenheid een probleem wordt.<\/p>\n<p>Nadat je de opdracht met <code>wp acorn make:command CleanupTransients<\/code> hebt gegenereerd, kun je de opdrachtstructuur instellen:<\/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>Deze verwijderquery gebruikt de syntaxis voor meerdere tabellen <code>DELETE<\/code> om zowel de transi\u00ebnt als zijn time-outoptie in \u00e9\u00e9n keer te verwijderen. De query vindt time-outrecords waarvan het vervaltijdstempel is verstreken:<\/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>Controleer ook op fouten en houd het aantal verwijderingen bij:<\/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>Op <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-multisite-complete-gids\/\">Multisite installaties<\/a> voert het commando een tweede query uit voor site transients. Deze gebruiken verschillende tabel prefixes, maar volgen hetzelfde verwijderingspatroon:<\/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>Om de opdracht uit te voeren, voer je <code>wp acorn maintenance:cleanup-transients<\/code> uit.<\/p>\n<h3>3. Autoloaded options controleren<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/wp-options-autoloaded-data\/\">Autoloaded options<\/a> worden geladen bij elke aanvraag die je WordPress site verwerkt. Je kunt vertragingen en pieken in het geheugengebruik zien wanneer deze gegevens de 1MB overschrijden. Dit commando vindt de grootste autoloaded options, zodat je kunt achterhalen welke plugins de bloat veroorzaken.<\/p>\n<p>Maak eerst het audit commando met <code>wp acorn make:command AuditAutoload<\/code>. Definieer vervolgens de commando handtekening met een configureerbare drempelwaarde:<\/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>Bereken vanaf hier de totale grootte van alle autoloaded options:<\/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>Het commando voert een query uit voor options boven je drempel, sorteert ze op grootte en beperkt de resultaten tot de grootste 20:<\/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>Artisan&#8217;s <code>$this-&gt;table()<\/code> methode formatteert deze resultaten als een ASCII tabel: het lezen van gegevens in tabelvorm in je terminal verslaat het parsen van de ruwe query uitvoer:<\/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>Het commando geeft een waarschuwing als de totale autoload 3MB overschrijdt, wat duidt op een prestatieprobleem dat je moet aanpakken:<\/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>Gebruik <code>wp acorn maintenance:audit-autoload --threshold=500000<\/code> om de audit uit te voeren.<\/p>\n<h2>Toegang tot WordPress gegevens binnen commando&#8217;s<\/h2>\n<p>WordPress functies werken binnen je opdrachtmethodes omdat Acorn opstart binnen de levenscyclus van WordPress. Dit betekent dat je sommige functies zoals <code>get_posts()<\/code> of <code>get_option()<\/code> kunt callen zonder speciale instellingen:<\/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>Voor directe database query&#8217;s declareer je de <code>$wpdb<\/code> global aan het begin van je methode:<\/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> is ideaal wanneer je query&#8217;s variabelen of gebruikersinvoer bevatten, omdat het SQL injectieaanvallen helpt voorkomen:<\/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>Als je test op <code>false<\/code> na elke databasebewerking, zou dit je fouten moeten laten opmerken:<\/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><a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-custom-post-types\/\">Custom berichttypen<\/a> en taxonomie\u00ebn werken via standaard WordPress functies:<\/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>Custom WP-CLI commando&#8217;s zijn eenvoudig met Acorn en Artisan Console<\/h2>\n<p>Met <a href=\"https:\/\/roots.io\/acorn\/\" target=\"_blank\" rel=\"noopener noreferrer\">Acorn<\/a> heb je toegang tot de gestructureerde opdrachtklassen van Laravel, opgemaakte uitvoercomponenten, goede foutafhandeling en meer, terwijl je volledige toegang hebt tot de functies en gegevens van WordPress.<\/p>\n<p>Je kunt commando&#8217;s integreren via SSH toegang en cron planning binnen Kinsta. Je kunt ook commando&#8217;s toevoegen aan je implementatiescripts om onderhoud te automatiseren, bijvoorbeeld door <a href=\"https:\/\/kinsta.com\/blog\/github-actions\/\">GitHub Actions<\/a> workflows te gebruiken.<\/p>\n<p>Als je klaar bent om je WordPress onderhoudstaken te centraliseren met aangepaste WP-CLI commando&#8217;s, dan bevat <a href=\"https:\/\/kinsta.com\/nl\/wordpress-hosting\/\">Kinsta&#8217;s managed WordPress hosting<\/a> SSH toegang en WP-CLI op alle plannen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Waarschijnlijk heb je inmiddels een reeks losse PHP-scripts die specifieke taken uitvoeren, zoals het opschonen van oude berichtmetadata of het verwijderen van verlopen transients. In de &#8230;<\/p>\n","protected":false},"author":287,"featured_media":64849,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[892],"class_list":["post-64848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-wordpress-ontwikkeling"],"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>WordPress onderhoud automatiseren met Acorn en WP-CLI<\/title>\n<meta name=\"description\" content=\"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.\" \/>\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\/nl\/blog\/custom-wp-cli-commandos-acorn\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hoe je met Acorn custom WP-CLI commando&#039;s maakt en WordPress onderhoud kan automatiseren\" \/>\n<meta property=\"og:description\" content=\"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-02T07:16:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-02T08:17:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/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=\"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/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_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Hoe je met Acorn custom WP-CLI commando&#8217;s maakt en WordPress onderhoud kan automatiseren\",\"datePublished\":\"2026-03-02T07:16:55+00:00\",\"dateModified\":\"2026-03-02T08:17:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/\"},\"wordCount\":1148,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/\",\"name\":\"WordPress onderhoud automatiseren met Acorn en WP-CLI\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"datePublished\":\"2026-03-02T07:16:55+00:00\",\"dateModified\":\"2026-03-02T08:17:04+00:00\",\"description\":\"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress ontwikkeling\",\"item\":\"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-ontwikkeling\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Hoe je met Acorn custom WP-CLI commando&#8217;s maakt en WordPress onderhoud kan automatiseren\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/nl\/#website\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"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\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress onderhoud automatiseren met Acorn en WP-CLI","description":"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.","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\/nl\/blog\/custom-wp-cli-commandos-acorn\/","og_locale":"nl_NL","og_type":"article","og_title":"Hoe je met Acorn custom WP-CLI commando's maakt en WordPress onderhoud kan automatiseren","og_description":"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.","og_url":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2026-03-02T07:16:55+00:00","article_modified_time":"2026-03-02T08:17:04+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Joel Olawanle","Geschatte leestijd":"11 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Hoe je met Acorn custom WP-CLI commando&#8217;s maakt en WordPress onderhoud kan automatiseren","datePublished":"2026-03-02T07:16:55+00:00","dateModified":"2026-03-02T08:17:04+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/"},"wordCount":1148,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/","url":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/","name":"WordPress onderhoud automatiseren met Acorn en WP-CLI","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","datePublished":"2026-03-02T07:16:55+00:00","dateModified":"2026-03-02T08:17:04+00:00","description":"Met WP-CLI, Acorn en WordPress kun je custom commando\u2019s bouwen die je helpen bij het onderhouden van je site. In dit artikel laten we zien hoe je dat doet.","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2026\/02\/automating-wordpress-maintenance-with-wp-cli-and-acorn.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/custom-wp-cli-commandos-acorn\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"WordPress ontwikkeling","item":"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-ontwikkeling\/"},{"@type":"ListItem","position":3,"name":"Hoe je met Acorn custom WP-CLI commando&#8217;s maakt en WordPress onderhoud kan automatiseren"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/nl\/#website","url":"https:\/\/kinsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","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\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/64848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=64848"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/64848\/revisions"}],"predecessor-version":[{"id":64895,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/64848\/revisions\/64895"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/translations\/es"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/64848\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/64849"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=64848"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=64848"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=64848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}