WP CLI

WordPress fra command line

Hvem er jeg?

  • Patrick Hesselberg
  • Uddannet multimedie-integrator
  • Arbejder hos Peytz & Co
  • Backend/plugin udvikler
  • "Theme" udvikler
  • WP core contributer
  • WP CLI contributer
  • ... Og andre WP open source projekter

Command line & WP CLI

  • Hvem har før brugt command line?
  • Hvem bruger command line?
  • Hvem kender til WP CLI?
  • Hvem har brugt WP CLI?
  • Hvem bruger command line til dagligt?

Min introduktion til command line

Spil

cd C:/games/jazz

Hos Peytz & Co

Fra FTP/Filezilla til Csv/Git

Drush

Ubuntu servere

Udnyt terminal = mere effektiv

Manuel opsætning af projekter

  • Opret git repo
  • Hent WordPress core
  • Hent dependencies
  • Hent base filer
  • Hent base tema

Opsætning af projekter via. commands

Dokument over commands der skulle til at oprette et projekt

Shell scripting

Commands via. shell script

  • Hvilket locale af WP core?
  • Hent base theme?
  • Hent base files?
  • Vælg git repo

Shell scripting med WP CLI

WP CLI tog sig af WP...

... Vi skulle bare fortælle hvad den skulle gøre

pco-setup.conf

Nyt projekt = pco-setup.conf

Stil spørgsmålene fra starten af

Nyt projekt 1 time -> 5 minutter

Hvad er WP CLI?

WP CLI er et command line værktøj, som gør det muligt at administrere WordPress

Bruger WordPress til at undføre commands

Men det kan jeg da bare bruge WordPress til...

Scripts, cronjobs

wp plugin update --all

Hvad kræver det?

  • SSH/Shell adgang til serveren
  • PHP 5.3
  • WordPress 3.5.2
  • Linux er foretrukket

Hvordan får jeg det?

  • Hent phar (PHP Archive)
  • curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  • Se om den virker:
  • php wp-cli.phar --info
  • Gør den eksekverbar
  • chmod +x wp-cli.phar

Global install

sudo mv wp-cli.phar /usr/local/bin/wp

wp-cli.yml

  • --path
  • --url

Inspiration

Ikke mange en god idé - men en fælles værktøjskasse af mange gode idéer

  • Drush (drupal)
  • wpshell
  • Regenerate Thumbnails
  • Search-Replace-DB
  • WP-cli-exporter
  • WP-cli-importer
  • wordpress-plugin-tests

Commands

wp db

create

- Opret databasen ud fra wp-config

reset

- Fjern alle tabeller fra databasen

import/export

- Sql export/import

wp core

download

- Download WP core

config

- Opret wp-config.php

install

- Installér i databasen

multisite-convert

- Konvertér til multisite

update(-db)

- Opdatér WP (-db opdaterer db)

wp plugin

(de)activate

- (de)aktivér plugin

install

- Installer plugin(s)

list

- Liste over alle plugins (navn, version, aktiveret)

wp rewrite

flush

- Flush rewrite rules

structure

- Opdater rewrite permalinks

wp cron

event list

- Liste over alle cronjobs og hvornår de skal udføres

event run

- Kør et cronjobs cb funktion

wp ...

media regenerate

- Regenerate thumbnails

post/term generate

- Generér posts/terms

search-replace

- Search replace bl.a. URL. --recurse-objects til serialized arrays

Eksempler

Efter en stor import

Importerede 3000 posts. Test import igen...

wp post delete $(wp post list --post_type='cpt' --format=ids)

- Slet alle der har post type cpt

Nyt site, nye passwords

Efter det nye site er lanceret skal alle brugere have et nyt password. Send mail til alle brugere.

wp user list --role=editor --fields=user_email --format=count

- Hvor mange?

wp user list --role=editor --fields=user_email --format=csv

- Lav en eksport af alle deres emails

Site hack, ingen users tabel

Efter en kundens site blev hacket blev han bedt om at rydde op i users tabellen...

... Så han tømte den

wp user create phh phh@peytz.dk --role=administrator --user_pass=phh

Success: Created user 32.

- Opret en ny admin bruger

wp super-admin add 32

Success: Granted super-admin capabilities.

- Giv den nye bruger super admin rettigheder

Hvad kan WP CLI ikke?

WP CLI add command

WP CLI gør det muligt selv at bruge frameworket og tilføje commands

Packages

  • packages:
  • buddypress
  • polylang
  • wp remote

WP CLI

By Patrick Holberg Hesselberg