Bruke wp-cli for moro og fortjeneste

Se hvordan du kan utføre vanlige WordPress-oppgaver raskere eller til og med automatisere dem ved å bruke kraften til bash.


Hva er wp-cli?

wp-cli er et verktøy for å kontrollere WordPress gjennom et konsollvindu.

Når WordPress-administrasjonsgrensesnittet er så vakkert og enkelt å bruke, er det naturlige spørsmålet: Hvorfor skulle du noen gang bruke en kommandolinjegrensesnitt?

Det er to hovedårsaker:

  • Tastaturet er raskere enn musen - For strømbrukere kan det være ordre med størrelsen raskere å skrive en kommando enn å trykke på en knapp i en nettleser.
  • scripting - Du kan sette flere kommandoer i en tekstfil og få den kjørt automatisk.

I denne opplæringen skal jeg gi deg en smak av hva wp-cli er bra for.


Installere wp-cli

Før du bruker det, trenger du et par ting:

  1. UNIX-lignende skall - Hvis du er på en Mac eller på Linux, kan du kjøre wp-cli på din lokale maskin. Hvis du er på Windows, kan du logge deg på Linux-serveren din via Putty og installere wp-cli der.

  2. PHP 5.3+ og php-cli-verktøyet - Du kan se om du har disse ved å kjøre følgende kommando:

    php -v
  3. Git - Dette er hva vi skal bruke for å installere og oppdatere wp-cli.

Wp-cli-prosjektet er fortsatt i barndommen, så den beste måten å holde seg på de siste versjonene er å klone den fra github:

 git klone - recurse-submodules git: //github.com/andreascreten/wp-cli.git ~ / git / wp-cli cd ~ / git / wp-cli sudo utils / build-dev

~ / Git / wp-cli er katalogen der wp-cli vil bli installert. Du er velkommen til å endre den til hva du vil.

Det er det. Nå wp kommandoen bør være tilgjengelig:

 cd / var / www / public_html / wordpress wp

På Multisite

Hvis du vil bruke wp-cli på en flersidig installasjon, må du bestemme hvilken blogg du vil operere på:

 wp --blog = myblog.mynetwork.com

For å unngå å måtte passere --blog parameter for hver kommando, kan du lagre den i en spesielt navngitt fil:

 ekko 'myblog.mynetwork.com'> wp-cli-bloggen

wp-cli vil lese den filen hvis det er nei --blog parameter.


Håndtering Core

Først, la oss se hvilken versjon av WordPress vi har å gjøre med:

 wp kjerneversjon - ekstra

For å utføre en oppdatering, trenger du bare å skrive:

 wp kjerneoppdatering

Håndteringsplugger

La oss se hvilke plugins vi har installert:

 wp plugin status

Huh, det ser ut til at det er en oppdatering tilgjengelig for Akismet. La oss installere det:

 wp plugin oppdatering akismet

La oss nå installere og aktivere et plugin fra wordpress.org:

 wp plugin installere google-sitemap-generator - aktiver

Du kan også installere utviklingsversjonen av et plugin:

 wp plugin installere google-sitemap-generator - aktivere --dev

Åh, og se, det er en ny kommando tilgjengelig nå:

 wp google-sitemap

Vi kan raskt bytte et plugin fra aktive til inaktive og omvendt:

 wp plugin bytte google-sitemap-generator

Dette er en fin måte å feilsøke aktiveringskroker på.

På samme måte kan du kjøre en avinstalleringsprosedyre for plugin uten å slette pluginfilene:

 wp plugin avinstaller google-sitemap-generator

Og selvfølgelig kan du også slette plugin:

 wp plugin slette google-sitemap-generator

Håndtering av temaer

Vi har også noen få kommandoer for å jobbe med temaer:

 wp tema status

I motsetning til plugins, kan du bare ha et enkelt tema som kjører av gangen, så aktivering av et tema vil automatisk deaktivere den forrige:

 wp tema aktivere tjueen

Og her er et lite triks for å gå inn i katalogen for et bestemt tema:

 cd $ (wp tematittel twentyeleven)

Genererer data

Hvis du skriver et tema og du vil utforme paginasjonen, trenger du mange innlegg. Her er den raskeste måten å få dem på:

 wp generere innlegg - antall = 1000

Hvis du vil utforme en liste over brukere, kan du også generere noen av dem:

 wp generere brukere --role = forfatter

Du kan også opprette individuelle brukere:

 wp bruker lage stan [email protected]

Opprette eksportfiler

Du vil kanskje regelmessig eksportere innholdet ditt til en WXR-fil.

 wp eksport - path =. / --user = admin

Du kan sende flere parametere for å begrense hvilket innhold som eksporteres, for eksempel --kategori, --startdato etc.


Endre alternativer på fly

Det er enkle kommandoer for CRUD operasjoner på opsjoner:

 wp alternativet få permalink_structure wp alternativ legge foo bar wp alternativ slette foo

Du vil ikke gjøre dette regelmessig, ettersom de fleste alternativer er begrenset til bestemte verdier. Men det kan komme til nytte i skript.


Database Operations

Hvis du vil sikkerhetskopiere databasen, skriv bare:

 wp db dump

Eller kanskje du trenger å gjøre et raskt spørsmål for å finne når det siste innlegget ble publisert:

 wp db query "SELECT MAX (post_date) fra wp_posts WHERE post_type = 'post' og post_status = 'publiser'

Å åpne en interaktiv MySQL-økt for å gjøre noe diagnostikk er like enkelt:

 wp db cli

Kjører vilkårlig kode

Noen ganger er den eneste måten å fortelle wp-cli hva du vil, ved å beskrive den i PHP-kode:

 wp eval-fil gjør-min-laundry.php

Med kommandoen ovenfor vil wp-cli først laste inn WordPress og deretter laste og utføre PHP-filen din.

Dette er nyttig i distribusjonsskript eller for andre komplekse handlinger som ikke kan oppnås ved hjelp av innebygde kommandoer.

Du kan også sende PHP-kode inline:

 wp eval 'echo WP_CONTENT_DIR;'

Opprette dine egne kommandoer

Tro det eller ei, wp-cli er skrevet mest i PHP. Hver kommando er en klasse, med hver metode som representerer en underkommando.

Den ryddige tingen er at du kan lage din egen klasse, sette den i en plugin og wp-cli vil automatisk gjenkjenne den som en av sin egen. En detaljert opplæring for å lage kommandoer er tilgjengelig i prosjektwiki.


Konklusjon

Jeg håper jeg har overbevist om at du i det minste gir wp-cli en prøve. Hvis du har funnet en feil eller hvis du har en funksjonsforespørsel, bør du vurdere å åpne et problem.

Har du en interessant brukstilfelle for wp-cli? Vennligst del den i kommentarene nedenfor.