63
CLI for WordPress an introduction Hollywood WordPress Meetup Mike Schroder (DH-Shredder) @GetSource - http://www.getsource.net

CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

CLI for WordPressan introduction

Hollywood WordPress Meetup

Mike Schroder (DH-Shredder)@GetSource - http://www.getsource.net

Page 2: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Who Am I?

• Mike Schroder, a.k.a DH-Shredder, a.k.a. @GetSource

• Third Culture Kid, enjoy Coffee & Sailing

• WordPress Core and wp-cli Contributor

• Happy DreamHost Employee

Page 3: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

There are two groupsof people.

Page 4: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Those who use the command line

Page 5: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Those who are going to use the command line

Page 6: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Don’t be afraid of the CLI.It’s your friend.

Page 7: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Oh, you like the CLI?wp-cli will make your life better.

Page 8: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Command Line Interface:

A direct, text-based, interfaceto a computer.

Page 9: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

A direct, text-based, interface to your server.

Page 10: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

At your host, you’ll see this referred to as SSH.

Page 11: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Perform operations directly on your server.

Page 12: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing
Page 13: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing
Page 14: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Why would I use the CLI?

Page 15: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Efficiency!Get things done faster.

Page 16: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Copying a WordPress install in SFTP?

Page 17: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

~5 Minutes+

Page 18: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Copying a WordPress install in SSH?

Page 19: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

~10 Seconds

Page 20: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

What else can I do?

Page 21: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Deploy your site.

Page 22: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

On-server file editing.

Page 23: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Plugin and theme installation or updates.

Page 24: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Commands and Arguments

$ cmd <required arg> [optional arg]

Page 25: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Windows Instructions: - Install Putty: http://bit.ly/y99vUd

Page 26: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing
Page 27: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Mac Instructions: Open Terminal, then:$ ssh [user@]<your_host_address>

Page 28: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

What are some basic commands?

Page 29: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

List files

$ ls [-a] [location]

-a for all files, including hidden

Page 30: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Change directory

$ cd <location>

Use ~ for home.../ to go up a directory.

Page 31: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Copy files

$ cp [-r] <source> <dest>

-r copies recursively.

Page 32: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Remove files

$ rm [-r] <location>

-r removes recursively.

Page 33: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Move files or directories

$ mv <source> <dest>

Page 34: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Download files

$ wget <http://somesite/that.zip>

Page 35: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Unzip files

$ unzip <location.zip>

Page 36: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

WordPress specific CLI operations: WP-CLI

Page 37: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Super-cool Open Source tool to manage WordPress

Page 38: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Headed up byCristi Burcă (scribu) and

Andreas Creten

Page 39: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Uses WordPress itself to perform operations

Page 40: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Automation!

Page 41: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

What can I do with it?

Page 42: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing
Page 43: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

No, Really.

Page 44: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Update WordPress

$ wp core update

Page 45: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Install a Theme

$ wp theme install <slug>

Page 46: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Change Theme

$ wp theme activate <slug>

Page 47: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Backup your Database

$ wp db export [filename]

Page 48: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Update Plugins

$ wp plugin update-all

Page 49: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Update Themes

$ wp theme update-all

Page 50: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

What do I need to run it?

• SSH access to your WordPress install's directory

• PHP 5.3+

• WordPress 3.3+

• Enough RAM for shell processes to run WordPress

• Easiest on Linux & MacOS

Page 51: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Okay. Got that covered.How can I get this

Awesomeness?

Page 52: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Install WP-CLI

Full Instructions at http://wp-cli.org

In short, from the root of your user:curl http://wp-cli.org/installer.sh | bash

Page 53: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

If you’re local and have sudo:

sudo utils/dev-build

Page 54: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Otherwise, add an alias(.bashrc/.bash_profile)

alias wp='/home/user/wp-cli/src/bin/wp';

Page 55: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

In ~/.bash_profile:

if [ -f ~/.bashrc ]; then source ~/.bashrcfi

(http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html)

Page 56: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

You’ve got it installed?

Let’s dig deeper.

Page 57: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

WP-CLI is extensible.

Page 58: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Add your own directly

wp-cli/php/commands/community/cmd_name.php

Page 59: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Or, define in your plugins.

if ( defined('WP_CLI') && WP_CLI ) {! include( PLUGIN_DIR . '/lib/wp-cli.php' );}

Page 60: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Sample Backup Plugin:

http://getsource.net/2012/10/wp-cli-awesomeness-in-vancouver

Page 61: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

This is just a start.

Page 62: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing
Page 63: CLI for WordPress...Copying a WordPress install in SFTP? ~5 Minutes+ Copying a WordPress install in SSH? ~10 Seconds. What else can I do? Deploy your site. On-server file editing

Resources!

• http://wp-cli.org

• http://files.fosswire.com/2007/08/fwunixref.pdf

• http://getsource.net/2012/10/wp-cli-awesomeness-in-vancouver/

• http://wp.tutsplus.com/tutorials/using-wp-cli-for-fun-and-profit/

• http://halfelf.org/2012/command-line-wp/

• http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html

Mike Schroder (DH-Shredder)@GetSource - http://www.getsource.net