WordPress beheren via de terminal met WP-CLI

WordPress beheren via de terminal met WP-CLI

Geschreven op 22-07-2020 door Edwin Tjallings
WordPress beheren via de terminal met WP-CLI

Elke maand geven we je handige tips en trucs over WordPress, zodat je meer uit je WordPress site kunt halen. Wist je dat je WordPress niet alleen via je browser maar ook via de terminal of SSH kunt beheren? WordPress heeft een "Command Line Interface" die WP-CLI wordt genoemd. In deze blogpost vertellen je wat WP-CLI is en geven we een aantal voorbeelden wat je met WP-CLI allemaal kunt doen.

Wat is WP-CLI en hoe gebruik ik het?
WP-CLI staat voor WordPress Command Line Interface, en biedt de mogelijkheid om WordPress installaties te beheren via de terminal of SSH. Dit is met name voor de meer technische en geavanceerde gebruikers handig, omdat zij dan sneller WordPress taken kunnen uitvoeren en zelfs deze taken in scripts kunnen automatiseren. WP-CLI is standaard op al onze hostingpakketten geinstalleerd, en kan dus direct worden gebruikt. Log eerst in via SSH op je hostingpakket of gebruik te Terminal optie in cPanel. In deze blogpost kun je nalezen hoe je via SSH kunt inloggen.

Als je op de command line zit, ga dan eerst naar de map waar je WordPress site geinstalleerd staat (of komt te staan). In veel gevallen is dat public_html:

cd public_html

Vervolgens kun je met WP-CLI aan de slag. Een WP-CLI commando ziet er altijd als volgt uit:

wp commando subcommando verplichte-parameters --optionele-parameter --nog-een-optionele-parameter=waarde 

Je begint altijd met wp met daarachter het commando en subcommando wat je WordPress wilt laten uitvoeren tezamen met eventuele verplichte en optionele parameters voor dat commando. In de rest van deze blogpost zal ik een aantal voorbeelden geven waarin dit duidelijker zal worden.

Thema's installeren, updaten en verwijderen
Met WP-CLI kun je eenvoudig en snel WordPress thema's installeren, updaten en verwijderen.

Het installeren en activeren van het "twentytwenty" thema doe je als volgt:

wp theme install twentytwenty --activate

De naam van het thema die je in het commando gebruikt, kun je vinden door op https://nl.wordpress.org/themes/ naar de thema-pagina te gaan en dan de naam uit de URL te kopieren:

In de URL zie je de naam van het thema staan die je in WP-CLI kunt gebruiken

Om dit thema vervolgens te updaten:

wp theme update twentytwenty

Je kunt ook alle geinstalleerde thema's in 1x updaten met:

wp theme update --all

En een thema verwijderen doe je met:

wp theme delete twentytwenty --force

De --force is nodig om een actief thema te kunnen verwijderen. Een lijst met alle geinstalleerde thema's kun je opvragen met:

wp theme list

Plugins installeren, updaten en verwijderen
Wat je met thema's kunt doen met WP-CLI, kun je ook met plugins doen. Laten we eens naar een aantal voorbeelden kijken.

Om een plugin te installeren en activeren gebruik je het volgende commando. In dit voorbeeld installeer en activeer ik de WooCommerce plugin:

wp plugin install woocommerce --activate

De naam van de plugin kun je in de URL zien staan door naar de plugin-pagina op https://nl.wordpress.org/plugins/ te gaan:

In de URL zie je de naam van de plugin staan die je in WP-CLI kunt gebruiken

Om een plugin te activeren, deactiveren en vervolgens te verwijderen, gebruik je de volgende commando's:

wp plugin activate woocommerce
wp plugin deactivate woocommerce
wp plugin delete woocommerce

En het updaten van een specifieke plugin doe je als volgt:

wp plugin update woocommerce

Alle plugins in 1x updaten is mogelijk met de --all parameter:

wp plugin update --all

Als laatste toon ik hoe je een lijst van alle geinstalleerde plugins kunt opvragen:

wp plugin list

WordPress installeren, updaten en herinstalleren
Je kunt zelfs WordPress installeren, updaten en herinstalleren via de command line. Laten we kijken hoe dat in zijn werk gaat.

Om de laatste Nederlandse versie van WordPress te downloaden naar je hostingpakket, en die vervolgens te installeren gebruik je de volgende drie commando's. Zorg ervoor dat je van te voren eerst een database en databasegebruiker hebt aangemaakt. Dit kun je doen in het cPanel control panel van je hostingpakket.

wp core download --locale=nl_NL
wp core config --dbname=databasenaam --dbuser=databasegebruiker --dbpass=databasewachtwoord --dbhost=localhost
wp core install --url=www.domeinnaam.nl --title=Titel --admin_user=admin --admin_password=wachtwoord --admin_email=info@domeinnaam.nl

Zoals je ziet, worden er een aantal parameters aan de "wp core config" en "wp core install" commando's meegegeven:

  • --dbname - De naam van de database die je hebt aangemaakt
  • --dbuser - De database-gebruikersnaam die je hebt aangemaakt en hebt toegekend aan de database
  • --dbpass - Het wachtwoord van de database-gebruiker die je hebt aangemaakt
  • --dbhost - Het serveradres van de database, wat bij ons altijd "localhost" is
  • --url - de URL van de nieuwe WordPress installatie
  • --title - de titel van de website
  • --admin_user - de gebruikersnaam waarmee je straks kunt inloggen op wp-admin
  • --admin_password - het wachtwoord waarmee je straks kunt inloggen op wp-admin
  • --admin_email - het e-mailadres van deze gebruiker

Voor de liefhebber die alles wil automatiseren via de command line, heeft cPanel ook een command line API voor het aanmaken van een database, aanmaken van een database-gebruiker, en het toekennen van die gebruiker aan de database.

Het updaten van WordPress core kun je doen met het volgende commando:

wp core update

En indien je WordPress installatie niet meer goed werkt en je de WordPress core wilt herinstalleren met behoud van gegevens en zonder dat de standaardthema's en -plugins worden geinstalleerd, dan kun je dit doen met:

wp core download --skip-content --force

De URL van een WordPress intallatie wijzigen
Met WP-CLI kun je ook snel en eenvoudig de instellingen van een WordPress installatie aanpassen (de zogenoemde "wp-options"). Met het onderstaande commando's kun je bijvoorbeeld de URL van een WordPress installatie wijzigen:

wp option update home 'https://www.domeinnaam.nl'
wp option update siteurl 'https://www.domeinnaam.nl'

Na verloop van tijd kan de wp-options tabel redelijk groot worden en je site trager maken, en kan het handig zijn deze op te schonen. Ook dit kun je met WP-CLI voor elkaar krijgen. Op deze blogpost van WP-Bullet kun je lezen hoe dat gaat.

Database exporteren, importeren en een zoek-en-vervang-actie uitvoeren
Ook database-acties kun je met WP-CLI uitvoeren, zoals het exporteren en importeren van de database of het uitvoeren van een zoek-en-vervang-actie.

Het exporteren van de MySQL database van een WordPress installatie doe je met:

wp db export

De gehele inhoud van de database wordt dan als een .sql bestand opgeslagen, die je vervolgens kunt downloaden. Om dit .sql bestand weer te importeren, gebruik je het onderstaande commando:

wp db import bestandsnaam.sql

Om een bepaalde waarde in de gehele database van je WordPress site te zoeken en vervangen door een andere waarde, heeft WP-CLI ook een handige zoek-en-vervang-optie beschikbaar:

wp search-replace 'oude-waarde' 'nieuwe-waarde' --dry-run

Met het bovenstaande commando wordt overal in de database "oude-waarde" vervangen door "nieuwe-waarde". Door de parameter "--dry-run" mee te geven, laat WP-CLI alleen zien wat vervangen zou gaan worden zonder het daadwerkelijk in de database aan te passen - zo kun je eerst checken of de actie er goed uit ziet. Laat deze parameter weg om de actie ook in de database te vervangen en op te slaan.

Overzicht van alle WP-CLI commando's
Tot zo ver een aantal voorbeelden van wat je allemaal met WP-CLI via de terminal of SSH kunt doen. Zoals je ziet, kan het gebruik van WP-CLI erg handig zijn en je veel tijd besparen.

Een overzicht van alle beschikbare WP-CLI commando's kun je vinden op de volgende pagina: https://developer.wordpress.org/cli/commands/

Ook heeft WP-CLI een ingeboude help-functie waarmee je meer informatie over het gebruik van alle commando's kunt nalezen. Met het onderstaande commando krijg je een overzicht van alle beschikbare commando's:

wp help

Als je vervolgens meer informatie over een specifiek commando en subcommando wilt, gebruik je het onderstaande. In dit geval krijg je meer informatie te zien over het commando "core" en het bijbehorende subcommando "core download:

wp help core
wp help core download