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!
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.
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!
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!
Hallo Hiranthi,
nu heb ik een vriend die mijn site vernieuwd heeft. Up to date…
sinds deze vernieuwing krijg ik nu dagelijks enkele meldingen van wordpress : WordPress WP-CLI Auto Update in de titel.
verder geen melding of opmerking in de mail zelf.
dit vindt ik erg irritant, mijn vriend deed het af met die klik je toch weg.
ik ontvang ze liever niet op mijn werkmail.!
kan dit ergens uitgevinkt worden? of verwijderd op een of andere manier.?
groet Marco
Hallo Marco, wordt de betreffende website bij ons gehost? Wij versturen deze meldingen namelijk niet. We zien het wel eens bij providers waar WP-CLI is voorgeïnstalleerd. Je kunt in dat geval het beste daar even de vraag voorleggen.
Deze blog (WP-CLI: WordPress via de command line) gevonden via Google en Bing, helaas niet via de zoekfunctie op de helppagina’s van jullie zelf.
Klopt het dat de opdrachten in ~/bin tegenwoordig wel in het commando zoekpad staan? ik kan wp namelijk gewoon vanuit mijn website paden bereiken, zonder opgave van het commando pad of gebruikmaking van $wp..
Om WP-CLI te kunnen gebruiken, staat in de documentatie van WP-CLI dat je het commando wp gebruikt. Dat is bij ons niet standaard mogelijk, omdat je het niet naar de standaard bin-map kunt zetten. We noemen daarom in dit blog dat je een environment variable moet aanmaken ($wp) om WP-CLI mee aan te kunnen roepen (in plaats van met het standaard commando wp).
Als de ‘current workdir’ de installatie-map zelf is, dan hoef je het pad niet op te geven. Heb je daar WP-CLI in gezet (in plaats van het te verplaatsen naar de bin-map zoals in het artikel staat), dan kun je ook gewoon wp gebruiken in plaats van $wp.