WP-CLI: WordPress via de command line!

Van blogs tot webshops en professionele portfolio’s – het soort website waar WordPress voor wordt gebruikt, is enorm divers. En dat geldt net zo goed voor de gebruikers. Nu bestaan er zat oplossingen om één of vooral meerdere WordPress-website beheren nóg makkelijker te maken. Welke voor jou werkt, bepaal jij. Voor de meer technisch onderlegde beheerder is WP-CLI in elk geval heel fijn. Lees hoe het werkt en wat je ermee kunt!

WP-CLI: beheer WordPress via de command line!

Inhoudsopgave

Wat is WP-CLI?

WP-CLI is een command-line interface om het beheren van WordPress-websites prettiger te maken. Je kunt dan bijvoorbeeld plugins updaten of WordPress Multisite configureren, zonder gebruik van een browser. De eisen voor WP-CLI zijn niet heel hoog. Deze handige tool van WordPress.org kun je dus ook voor oudere WordPress-installaties gebruiken om alles bij te werken en beheer te vereenvoudigen. Hieronder staat wat je voor WP-CLI nodig hebt.

  • Minimaal PHP 5.4
  • Een WordPress-installatie (minimaal versie 3.7)
  • Een SSH client als Terminal of een soortgelijk programma
  • SSH-toegang tot je hostingpakket (er zijn ook manieren om WP-CLI op je computer te installeren, maar dat wordt in dit blog niet behandeld)

Het mooie van deze eisen is dat je WP-CLI ook kunt gebruiken om verouderde WordPress-websites naar de actuele versie bij te werken (momenteel 5.2.2). Ga je een oudere WordPress-installatie updaten, let dan ook op de PHP-versie. WordPress 5.2 vereist namelijk minimaal PHP 5.6 en beveelt PHP 7.3 aan. Kies voor het updaten dus eerst de beste versie via de PHP-selector in DirectAdmin.

Compatibiliteit controleren
Merk op dat sterk verouderde WordPress-installaties doorgaans ook met sterk verouderde content samengaan. De kans is groot dat het actieve thema en de plugins in de installatie niet langer bijgehouden worden en daardoor niet compatibel zijn met PHP 7 en nieuwer.

WP-CLI installeren

WP-CLI wordt niet voorgeïnstalleerd op je hostingpakket. Daar zijn eigenlijk twee simpele redenen voor. Niet iedereen met een hostingpakket wil per se WordPress gebruiken. Wel WordPress installeren betekent daarnaast niet dat iemand ook meteen WP-CLI wil. Gelukkig is zelf WP-CLI installeren zo gebeurd en daarna ook makkelijk bij te werken wanneer nodig.

1. Maak verbinding via SSH

Om WP-CLI te installeren, is het belangrijk dat je via SSH op je hostingpakket bent ingelogd. Heb je niet eerder via SSH verbinding gemaakt, dan zul je eerst een SSH key moeten aanmaken. Raadpleeg daarvoor onze SSH-handleiding.

2. Start de Installatie

Met behulp van de volgende regels haal je de actuele WP-CLI-versie op en maak je deze beschikbaar op jouw hostingpakket.

curl -O 
https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mkdir -p bin/.wp-cli/packages
mkdir bin/.wp-cli/cache
mv wp-cli.phar bin/wp

Vanaf dat moment kun je WP-CLI gebruiken. Het is belangrijk dat je het op de juiste manier aanvraagt. In veel documentatie wordt wp als commando benoemd. Dat werkt op je hostingpakket echter alleen als je in de map /bin zit.

Zit je in de map van je WordPress-installatie, dan kun je daardoor geen gebruikmaken van alleen wp als commando. Je zult dan namelijk het gehele pad naar wp op moeten geven. Of wanneer je wel in de map /bin blijft, het pad van je WordPress-installatie bij ieder commando.

3. Maak sessie-variabelen aan

Gelukkig kun je met SSH ook van sessie-variabelen gebruikmaken. Dat maakt het blijven gebruiken van de juiste gegevens een stuk makkelijker. Dit kan met de onderstaande regels. Pas dit aan naar je eigen situatie.

export DEBUSER=$(whoami)
export DOMAIN=voorbeeld.nl
export WP_CLI_PACKAGES_DIR=/home/$DEBUSER/bin/.wp-cli/packages
export WP_CLI_CACHE_DIR=/home/$DEBUSER/bin/.wp-cli/cache
export WP_PATH=/home/$DEBUSER/domains/$DOMAIN/public_html
export wp=/home/$DEBUSER/bin/wp
  • $DEBUSER: jouw gebruikersnaam voor DirectAdmin
  • $DOMAIN: de domeinnaam van je installatie
  • $WP_CLI_PACKAGES_DIR: de map waar extra packages van WP-CLI (wanneer je die zou installeren) naartoe worden gezet
  • $WP_CLI_CACHE_DIR: deze map wordt door WP-CLI gebruikt voor de cache (zoals pluginbestanden bij het installeren en updaten)
  • $WP_PATH: voor het volledige pad naar jouw WordPress-installatie
  • $wp: verwijzing naar de locatie waar WP-CLI staat, hierdoor kun je $wp gebruiken om WP-CLI op te vragen

TIP!
Deze sessie-variabelen moeten iedere sessie opnieuw worden ingesteld. Je kunt er daarom voor kiezen een configuratiebestand aan te maken.

Nu je het hebt geïnstalleerd en de sessie-variabelen hebt aangemaakt, kun je écht beginnen. Merk op dat wijzigingen via WP-CLI gevolgen hebben voor de installatie waar je aan werkt! Als jij de opdracht geeft beschikbare updates voor plugins te verwerken, dan zal WP-CLI dat ook voor je doen. Eerst een testomgeving opzetten om het onder de knie te krijgen, kan daarom slim zijn.

Antagonist Backups
Gaat iets niet goed waardoor de website niet meer werkt, dan kun je met behulp van Antagonist Backups makkelijk een herstel uitvoeren.

Toveren met WP-CLI

Er is ontzettend veel mogelijk met WP-CLI en het is wat veel voor één blog om dat allemaal te gaan benoemen. De meest gebruikte en praktische zaken zet ik hieronder voor je uiteen.

Leer toveren met WP-CLI!

Handige globals

In de documentatie van WP-CLI staat een overzicht met alle global parameters. Deze kunnen bij ieder WP-CLI commando worden gebruikt. En weet je het even niet meer, dan staat WP-CLI altijd voor je klaar.

$wp cli help

Bij ieder commando kun je een aantal extra variabelen opgeven. Zo kun je bijvoorbeeld het pad van de WordPress-installatie waarop je wil werken, opgeven met --path=$WP_PATH en voorkomen dat code van plugins en thema’s wordt uitgevoerd met behulp van --skip-plugins en --skip-themes.

Versie-informatie opvragen

Als je niet zeker meer weet welke WordPress-versie je gebruikt, dan kun je dat makkelijk opvragen met het onderstaande commando.

$wp core version

Welke versie je van WP-CLI gebruikt, vraag je met dit commando op.

$wp cli version

Het updaten gaat voor beide met net zoveel gemak.

$wp core update
$wp cli update

Integriteit controleren

Voor de WordPress core kun je ook makkelijk de integriteit nagaan. Je bekijkt met dit commando of er in de core bestanden ontbreken of dat er juist meer zijn dan zou moeten.

$wp core verify-checksums

Dit kijkt niet naar de plugins en thema’s. Houd er ook rekening mee dat er alleen wordt gekeken of alle bestanden er zijn en zo ja, of deze overeenkomen met de inhoud van wat het voor die versie zou moeten zijn. Een melding over een ontbrekend bestand staat dus niet per se gelijk aan een enorm probleem.

Extra bestanden duiden daar wel eerder op. Het is dan het wel zo praktisch om eerst het bestand na te gaan, voordat je het daadwerkelijk verwijderd. Een .htaccess in de map /wp-includes komt bijvoorbeeld vaak terug, maar is afhankelijk van de inhoud niet gelijk een indicatie van een infectie.


Maak je eigen WordPress-website!

Aan de slag met een eigen WordPress-website? Kies voor de snelle en veilige webhosting van Antagonist en begin direct!

Bekijk hostingpakketten →


Plugins bekijken

Via WP-CLI bekijk je snel welke plugins er zijn geïnstalleerd, welke daarvan actief zijn en of er een update beschikbaar is. Je kunt daarnaast ook met één commando een plugin installeren (en gelijk activeren) of deïnstalleren. In basis is dit het enige wat je hoeft op te geven om een lijst van de plugins van de installatie terug te krijgen.

$wp plugin list

De plugins worden met standaardvelden (naam, status, update en version) in een soort tabelweergave geplaatst. Wanneer er plugins met lange namen zijn, worden die namen over meerdere regels heen gezet. Dat kan het in bepaalde gevallen wat lastig leesbaar maken.

Je wijzigt de weergave door --format={format} op te geven. Standaard staat dit op table, maar je kunt het ook naar csv, count, json of yaml aanpassen.

$wp plugin list --format=csv

Als je alleen de actieve (of juist inactieve) plugins wilt zien, dan kan dat ook heel makkelijk met het onderstaande commando.

$wp plugin list --format=csv --status=active
$wp plugin list --format=csv --status=inactive

Zit er een plugin tussen die je niet bekend voorkomt of waarvan je gewoon wat meer informatie wilt, dan kun je dat als volgt makkelijk opvragen.

$wp plugin get wordfence

Plugins installeren, activeren en andersom

Kunnen bekijken welke plugins je hebt, is natuurlijk mooi. Vele malen handiger is om die plugins ook te kunnen (de)activeren, nieuwe te kunnen installeren of juist onnodige plugins te kunnen verwijderen. Uiteraard laat ook hier WP-CLI je niet in de steek!

# Plugin installeren, zoals Elementor:
$wp plugin install elementor

# Geïnstalleerde plugin activeren:
$wp plugin activate woocommerce

# Plugin installeren en gelijk activeren:
$wp plugin install antispam-bee --activate

# Plugin deactiveren:
$wp plugin deactivate woocommerce-admin

# Plugin verwijderen:
$wp plugin delete hello

Gebruik bij bovenstaande commando’s de pluginslug. Ofwel, de mapnaam van de plugin. Via $wp plugin list kun je dat makkelijk achterhalen.

Thema’s beheren

Het beheren van thema’s werkt praktisch hetzelfde als van plugins. Het verschil is dat je geen $wp plugin, maar $wp theme gebruikt. Een overzicht van de beschikbare thema’s opvragen, kan als volgt.

$wp theme list --format=csv

Een thema (de)activeren kan hiermee.

$wp theme activate twentynineteen
$wp theme deactivate twentythirteen

Om het thema te gebruiken of verwijderen, gebruik je het onderstaande.

$wp theme install genesis
$wp theme delete twentythirteen

De mogelijkheden zijn (bijna) oneindig!

Hopelijk heb je wat aan deze tips gehad en het succesvol in gebruikgenomen. Met WP-CLI beheer je plugins en thema’s, maar ook de users van je website, reacties, berichten en ga maar door. Eigenlijk je gehele installatie dus. En dat zonder tussenkomst van de browser!

Via $wp help en uiteraard ook in de WP-CLI-documentatie op WordPress.org kun je een hoop informatie vinden over de beschikbare commando’s. Weet je er nog een aantal die handig zijn, laat het dan gerust weten in de reacties.

P.S. Op de hoogte blijven van alle artikelen, updates, tips en trucs die op ons blog verschijnen? Volg ons via Facebook, Twitter, Instagram, RSS en e-mail!

Deel Deel Deel Deel

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *