Beheer WordPress websites met WP-CLI commando’s

Gijs Hovens, 4 februari 2019

Bespaar tijd in het ontwikkelen en onderhouden van websites door gebruik te maken van de command line, en dan vooral de command line tool WP-CLI. Met deze tool voeg je bijvoorbeeld gebruikers toe, installeer je plugins en pas je instellingen aan. Alles veel sneller dan via de wp-admin. In deze blog leggen we je uit wat WP-CLI precies is, hoe je het gebruikt en welke commando’s onze favorieten zijn.

Wat is WP-CLI?

De afkorting WP-CLI staat voor WordPress – Command Line Interface. Zoals de naam zegt is WP-CLI dus een tool om WordPress te beheren vanaf de command line. De command line is een manier om iets aan te sturen door middel van het typen van commando’s in een tekstuele omgeving (Command Line Interface, oftwel CLI) in plaats van bijvoorbeeld klikken met je muis in een grafische omgeving (Graphical User Interface, oftewel GUI). Een andere naam voor de command line is ‘shell’.

Met WP-CLI kun je met verschillende commando’s je WordPress site beheren. Denk bijvoorbeeld aan het installeren, activeren en updaten van plugin’s of thema’s, gebruikers beheren of zoek en vervang acties op de WordPress database.

De eerste versie van WP-CLI is in 2014 geschreven door Christi Burca (@scribu). Later is het project overgenomen door Daniel Bachhuber. Daniel heeft zijn slides gedeeld van een WordPress VIP WP-CLI workshop, erg interessant voor ervaren developers. WP-CLI wordt op dit moment onderhouden door Alain Schlesser. Lees ons interview met hem dat we hadden op WCEU 2018.

Hoe werk ik met de command line bij Savvii?

Bij Savvii maak je verbinding met de command line op jouw VPS door middel van het SSH-protocol. SSH staat voor Secure Shell.  Je activeert SSH in ons control panel.

SSH is geactiveerd

Vervolgens log je in op de command line met een programma als PuTTy (Windows) of Terminal (Mac). Je start niet meteen in de map waar je WordPress site staat, maar twee niveaus hoger. Deze map bevat verschillende mappen met zaken als logs, custom configuratie en je WordPress site. Je gaat naar die map met het commando:

cd wordpress/current

Als je in die map bent beheer je WordPress verder met WP-CLI commando’s. Het kennen van de WP-CLI commando’s is niet voldoende om prettig te werken op de command line. We raden je aan om je ook te verdiepen in de basis linux commando’s.

Je eerste stappen op de command line en WP-CLI zet je beter niet in een productie omgeving maar in een staging omgeving. Omdat commando’s op de command line geen undo of autosave functie hebben zijn vrijwel al je acties onomkeerbaar. Eerst even droog oefenen dus.

Bij Savvii is SSH en WP-CLI beschikbaar op VPS-pakketten en op staging sites binnen een VPS-pakket.

Hoe werkt WP-CLI?

All WP-CLI commando’s beginnen met ‘WP’, gevolgd door meerdere subcommando’s en mogelijke argumenten. Bijvoorbeeld

wp plugin install bbpress --activate

WP is het commando voor WP-CLI, plugin install zijn twee subcommando’s, bbpress is een ‘positinal argument’ en –activate een ‘associative argument’. Dit klinkt verwarrend maar de voorbeelden op wp-cli.org geven je veel richting zonder dat je hoeft na te denken over het type argument.

Op de command line krijg je automatisch meer uitleg als je een incompleet commando ingeeft. Als je

WP help

gebruikt krijg je ook meer informatie.

Onze top WP-CLI commando’s

Home & site URL aanpassen

wp option update home 'http://example.com'

wp option update siteurl 'http://example.com'

De WP option update is een favoriet van onze support collega Bas. Het aanpassen van de home en site url is vaak nodig bij het verhuizen van WordPress sites en bij het laten draaien van een WordPress site over https.

Find & replace uitvoeren

wp search-replace 'example.dev' 'example.com' --skip-columns=guid

Dit is mijn persoonlijke favoriet. Ook deze is erg nuttig bij het verhuizen van websites of wanneer het je het domein van je website wil veranderen. Een aanpassing op home en site url is vaak niet voldoende om alle interne links om te zetten naar je nieuwe domein. Het argument –skip-columns=guid zorgt ervoor dat de waarde voor de GUID in de database niet wordt aangepast. Het is belangrijk dat de GUID uniek is en nooit wijzigt. Zie de WordPress codex voor meer informatie over de GUID.

Het is verstandig om dit commando eerst uit te voeren met het argument –dry run. Daarmee pas je nog niks aan maar zie je op welke plekken hoeveel items worden aangepast.

Plugin lijst inzien

wp plugin list

Met dit command krijg je een overzicht van alle geïnstalleerde plugins, hun status (actief of inactief), of ze up to date zijn en het versienummer. Dit is uiteraard een eerste stap in het opruimen van je inactieve plugins en het updaten van al je plugins naar de laatste versie. Dit doe je ook allemaal met WP-CLI. Bekijk alle WP-CLI commando’s voor plugin. Het argument –all is handig bij updaten of deactiveren.

User list inzien

wp user list

Ook het user list commando is het startpunt voor het opschonen van al je users en het aanpassen van hun rol volgens het least-priviliges principe.

Genereren van test data

Soms wil je een WordPress site of database testen op bijvoorbeeld performance. Als je in zo’n geval een (bijna) lege WordPress site gebruikt krijg je geen valide uitkomst van je test. Met WP-CLI vul je je testwebsite met fake data voor bijvoorbeeld posts, terms en users. Er is geen specifiek commando om dit te doen. Een paar voorbeelden:

Voor 3 users met rol auteur:

wp user generate --count=3 --role=author

Voor 10 posts:

wp post generate --count=10 --post_type=page

Kijk voor de specifieke commando’s bij de post en user commando instructies.

Extra tip: combineer wp post create met een lorem ipsum generator voor fake content.

WP Cron event lijst inzien

Je hebt al gezien dat wij een opgeruimde WordPress site belangrijk vinden. Dat is veiliger en sneller. Soms zitten er zware taken in de wp cron. Door af en toe door de wp cron event list te kijken zie je of daar iets tussen zit wat niet meer nodig is misschien ook af kan met een lagere frequentie.

wp cron event list

Checksums verififiëren

Het verifiëren van de WordPress core checksums is een favoriet van collega Ferdi. Dit commando controleert of alle bestanden van je WordPress core nog origineel zijn. Als dat niet zo is heb je het óf zelf aangepast (dat is erg onverstandig omdat je site dan stuk gaat bij een update) óf ben je gehackt.

wp core verify-checksums

Wil je nu ook aan de slag met SSH en WP-CLI? Activeer dan SSH op je VPS-pakket of doe neem contact met ons op om je shared pakket te upgraden naar een VPS.

Reageer