36
WP-CLI: Save Time by Managing WordPress from the Command Line WordCamp NYC 2015 Designers Track Shawn Hooper Chief Technology Officer, Actionable Books @shawnhooper - shawnhooper.ca

WP-CLI Presentation from WordCamp NYC 2015

Embed Size (px)

Citation preview

Page 1: WP-CLI Presentation from WordCamp NYC 2015

WP-CLI: Save Time by Managing WordPress

from the Command Line

WordCamp NYC 2015 Designers Track !

Shawn HooperChief Technology Officer, Actionable Books

@shawnhooper - shawnhooper.ca

Page 2: WP-CLI Presentation from WordCamp NYC 2015

• I’m Shawn Hooper, a web application developer from Ottawa.

• I’ve been working in WordPress since 2009.

• I love the working from the command prompt, reminds me of my days running a BBS (in the days before the Internet)

Hi!

@shawnhooper - shawnhooper.ca

Page 3: WP-CLI Presentation from WordCamp NYC 2015

Command Line?!

@shawnhooper - shawnhooper.ca

Page 4: WP-CLI Presentation from WordCamp NYC 2015

• A set of command line tools that allows you to manage WordPress from the command line.

• http://www.wp-cli.org/

What is WP-CLI ?

@shawnhooper - shawnhooper.ca

Page 5: WP-CLI Presentation from WordCamp NYC 2015

• Anyone really, but mostly:

• Developers

• Theme Designers

• Server Administrators

Who is this for?

@shawnhooper - shawnhooper.ca

Page 6: WP-CLI Presentation from WordCamp NYC 2015

Don’t Fear The Command Line

@shawnhooper - shawnhooper.ca

Page 7: WP-CLI Presentation from WordCamp NYC 2015

• http://www.wp-cli.org/

• Requires PHP 5.3.2 or later

• Requires WordPress 3.5.2 or later

• A “UNIX-like” environment:

• OSX (Macintosh)

• Linux

• Cygwin (Windows)

What do you need?

@shawnhooper - shawnhooper.ca

Page 8: WP-CLI Presentation from WordCamp NYC 2015

• You need to have SSH access to use WP-CLI. Some shared hosting packages do not allow SSH access

• PlanetHoster, SiteGround, Pantheon, BlueHost, GoDaddy, Media Temple, Windows Azure and more now have CLI support.

• VPS services like Digital Ocean and Linode, InterServer are ideal.

Hosts

@shawnhooper - shawnhooper.ca

Page 9: WP-CLI Presentation from WordCamp NYC 2015

• Download it: curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

• Set permissions: chmod +x wp-cli.phar

• Move it somewhere useful: sudo mv wp-cli.phar /usr/local/bin/wp

Installing WP-CLI

@shawnhooper - shawnhooper.ca

Page 10: WP-CLI Presentation from WordCamp NYC 2015

• Does it work? Type: wp

Installing WP-CLI

@shawnhooper - shawnhooper.ca

Page 11: WP-CLI Presentation from WordCamp NYC 2015

Installing WP-CLI

@shawnhooper - shawnhooper.ca

Page 12: WP-CLI Presentation from WordCamp NYC 2015

Congratulations! (that was the hard part)

@shawnhooper - shawnhooper.ca

Page 13: WP-CLI Presentation from WordCamp NYC 2015

Great… It’s installed. So now what….

@shawnhooper - shawnhooper.ca

Page 14: WP-CLI Presentation from WordCamp NYC 2015

wp <command> <sub-command> <params>

Running Commands:

@shawnhooper - shawnhooper.ca

Page 15: WP-CLI Presentation from WordCamp NYC 2015

<param> — required

[—param] — optional flag

[—param=<value>] — optional w/ value

Running Commands:

@shawnhooper - shawnhooper.ca

Page 16: WP-CLI Presentation from WordCamp NYC 2015

• Check current WordPress version, or see if there are updates available.

• Do the update!

• Install a brand new site

• Convert an existing site to Multisite!

• Verify core checksums

core

@shawnhooper - shawnhooper.ca

Page 17: WP-CLI Presentation from WordCamp NYC 2015

• Let’s try setting up a brand new site on a development server using: wp core download wp core config wp db create wp core install --prompt

core

@shawnhooper - shawnhooper.ca

Page 18: WP-CLI Presentation from WordCamp NYC 2015

• Install, Delete Plugins

• Activate & Deactivate Plugins

• Update Plugins

• Search the repository for plugins

plugin

@shawnhooper - shawnhooper.ca

Page 19: WP-CLI Presentation from WordCamp NYC 2015

• Time savers! wp plugin update — all wp plugin deactivate — all

plugin

@shawnhooper - shawnhooper.ca

Page 20: WP-CLI Presentation from WordCamp NYC 2015

The “db” command interacts with

the MySQL database.

!

wp db export backup.sql wp db import backup.sql wp db cli

db

@shawnhooper - shawnhooper.ca

Page 21: WP-CLI Presentation from WordCamp NYC 2015

• Safe Search & Replace, including serialized arrays!

• Supports --dry-run

search-replace

@shawnhooper - shawnhooper.ca

Page 22: WP-CLI Presentation from WordCamp NYC 2015

Generate Test Content !

wp post generate --count=500

post

@shawnhooper - shawnhooper.ca

Page 23: WP-CLI Presentation from WordCamp NYC 2015

Create Posts with Random Content using Any Ipsum Plugin

!

wp plugin install any-ipsum —activate

wp any-ipsum generate-posts 100

post

@shawnhooper - shawnhooper.ca

Page 24: WP-CLI Presentation from WordCamp NYC 2015

Regenerate Thumbnails

!

wp media regenerate —yes

media

@shawnhooper - shawnhooper.ca

Page 25: WP-CLI Presentation from WordCamp NYC 2015

Start an underscores theme!

!

wp scaffold _s mytheme

scaffold

@shawnhooper - shawnhooper.ca

Page 26: WP-CLI Presentation from WordCamp NYC 2015

… or a child theme

!

wp scaffold child-theme mychild —parent_theme=twentyfourteen

scaffold

@shawnhooper - shawnhooper.ca

Page 27: WP-CLI Presentation from WordCamp NYC 2015

… or a custom post type

!

wp scaffold post-type mycpt —theme

scaffold

@shawnhooper - shawnhooper.ca

Page 28: WP-CLI Presentation from WordCamp NYC 2015

Download & Activate a Theme from WordPress.org

!

wp theme install simone —activate

theme

@shawnhooper - shawnhooper.ca

Page 29: WP-CLI Presentation from WordCamp NYC 2015

wp user generate

wp user import-csv

Create Users

@shawnhooper - shawnhooper.ca

Page 30: WP-CLI Presentation from WordCamp NYC 2015

wp term list

wp term create

wp term generate

Taxonomies

@shawnhooper - shawnhooper.ca

Page 31: WP-CLI Presentation from WordCamp NYC 2015

Executes PHP code * after loading the WordPress Core *

eval & eval-file

@shawnhooper - shawnhooper.ca

Page 32: WP-CLI Presentation from WordCamp NYC 2015

wp role create

wp role list

wp role exists

!

new: —clone flag on create

role & cap

@shawnhooper - shawnhooper.ca

Page 33: WP-CLI Presentation from WordCamp NYC 2015

Launches PHP’s Built-in Web Server

!

wp server

server

@shawnhooper - shawnhooper.ca

Page 34: WP-CLI Presentation from WordCamp NYC 2015

Add any functionality you want that isn’t already included in the

WP-CLI core.

https://github.com/wp-cli/wp-cli/wiki/List-of-community-commands

Community Commands

@shawnhooper - shawnhooper.ca

Page 35: WP-CLI Presentation from WordCamp NYC 2015

You can either write them as a plugin, or include it using the

—require parameter on the command line.

Community Commands

@shawnhooper - shawnhooper.ca

Page 36: WP-CLI Presentation from WordCamp NYC 2015

Thank you! Slides: www.shawnhooper.ca

E-Mail: [email protected]

Twitter: @shawnhooper

WordPress Slack: shooper

@shawnhooper - shawnhooper.ca