WordPress onderhoud automatiseren met Acorn en WP-CLI

ict


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.

Dit betekent dat je custom WP-CLI-commando’s kunt bouwen met gestructureerde klassebestanden waarin je onderhoudslogica centraal is ondergebracht. Deze commando’s 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.

Acorn installeren en commando’s uitvoeren

De eerste stap is het installeren van de dependencies die je nodig hebt. Acorn heeft PHP 8.2 of hoger, Composer voor het beheren van dependencies en WP-CLI op je server nodig. Kinsta levert WP-CLI bij alle hostingpakketten, dus je kunt meteen beginnen met het bouwen van commando’s.

Je installeert Acorn via Composer met composer require roots/acorn in de project root. Voeg vervolgens de opstartcode toe aan het bestand functions.php van je thema of aan je hoofdpluginbestand:

<?php
use RootsAcornApplication;
if (! class_exists(RootsAcornApplication::class)) 
    wp_die(
        __('You need to install Acorn to use this site.', 'domain'),
        '',
        [
            'link_url' => 'https://roots.io/acorn/docs/installation/',
            'link_text' => __('Acorn Docs: Installation', 'domain'),
        ]
    );


add_action('after_setup_theme', function () 
    Application::configure()
        ->withProviders([
            AppProvidersThemeServiceProvider::class,
        ])
        ->boot();
, 0);

De zero-config setup slaat de applicatiecache en logs op in de WordPress cache directory op [wp-content]/cache/acorn/, terwijl je commando’s in de app/ map van je thema staan.

De traditionele structuur volgt de Laravel conventies, zoals speciale mappen voor app/, config/, storage/, en resources/ in je project root. Je stelt dit in met één regel:

wp acorn acorn:init storage && wp acorn vendor:publish --tag=acorn

Als je wp acorn list uitvoert, controleert dit je installatie door alle beschikbare Acorn commando’s weer te geven. Vanaf dit punt worden alle custom commando’s die je maakt opgeslagen in de map app/Console/Commands/. Acorn ontdekt automatisch alle commandoklassen op deze locatie en registreert ze bij WP-CLI.



https://kinsta.com/nl/blog/custom-wp-cli-commandos-acorn/