Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WP-CLI: Save Time by Managing WordPress from the Command Line

WP-CLI: Save Time by Managing WordPress from the Command Line

Slides from the Introduction to WP-CLI talk that I've given at WordCamps and Meetups. For my blog posts about WP-CLI, see https://www.shawnhooper.ca/tag/wp-cli/


Shawn Hooper

August 14, 2017


  1. WP-CLI: Save Time by Managing WordPress from the Command Line

    Shawn Hooper
 Director of IT, Actionable @shawnhooper - shawnhooper.ca
  2. •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 Hi! @shawnhooper - shawnhooper.ca
  3. Command Line?! @shawnhooper - shawnhooper.ca

  4. •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
  5. •Anyone really, but mostly: •Developers •Theme Designers •Server Administrators Who

    is this for? @shawnhooper - shawnhooper.ca
  6. Don’t Fear The Command Line @shawnhooper - shawnhooper.ca

  7. •http://www.wp-cli.org/ •Requires PHP 5.3.29 or later •Requires WordPress 3.7 or

    later •A “UNIX-like” environment: •OSX (Macintosh) •Linux •Cygwin (Windows) What do you need? @shawnhooper - shawnhooper.ca
  8. •You need to have SSH access to use WP-CLI. Some

    shared hosting packages do not allow SSH access •SiteGround, Pantheon, BlueHost, GoDaddy, CloudAccess and more now have CLI support. •VPS services like Digital Ocean and Linode are ideal. Hosts @shawnhooper - shawnhooper.ca
  9. •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
  10. •Does it work? Type:
 Installing WP-CLI @shawnhooper -

  11. Installing WP-CLI @shawnhooper - shawnhooper.ca

  12. Congratulations! (that was the hard part) @shawnhooper - shawnhooper.ca

  13. Great… It’s installed. So now @shawnhooper - shawnhooper.ca

  14. wp <command> <sub-command> <params> Running Commands: @shawnhooper - shawnhooper.ca

  15. <param> — required [—param] — optional flag [—param=<value>] — optional

    w/ value Running Commands: @shawnhooper - shawnhooper.ca
  16. •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
  17. •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
  18. •Install, Delete Plugins •Activate & Deactivate Plugins •Update Plugins •Search

    the repository for plugins plugin @shawnhooper - shawnhooper.ca
  19. •Time savers!
 wp plugin update — all

    plugin deactivate — all plugin @shawnhooper - shawnhooper.ca
  20. 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
  21. • Safe Search & Replace, including serialized arrays!
 • Supports

    --dry-run search-replace @shawnhooper - shawnhooper.ca
  22. Generate Test Content ! wp post generate -- count=500 post

    @shawnhooper - shawnhooper.ca
  23. 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
  24. Regenerate Thumbnails wp media regenerate —yes media @shawnhooper - shawnhooper.ca

  25. Start an underscores theme! wp scaffold _s mytheme scaffold @shawnhooper

    - shawnhooper.ca
  26. … or a child theme wp scaffold child-theme mychild —

    parent_theme=twentyfourte en scaffold @shawnhooper - shawnhooper.ca
  27. … or a custom post type wp scaffold post-type mycpt

    —theme scaffold @shawnhooper - shawnhooper.ca
  28. Download & Activate a Theme from WordPress.org wp theme install

    simone — activate theme @shawnhooper - shawnhooper.ca
  29. wp user generate wp user import-csv Create Users @shawnhooper -

  30. wp term list wp term create wp term generate Taxonomies

    @shawnhooper - shawnhooper.ca
  31. Executes PHP code
 * after loading the WordPress Core *

    eval & eval-file @shawnhooper - shawnhooper.ca
  32. wp role create wp role list wp role exists new:

    —clone flag on create role & cap @shawnhooper - shawnhooper.ca
  33. Launches PHP’s Built-in Web Server wp server server @shawnhooper -

  34. Thank you!
 Slides: www.shawnhooper.ca
 E-Mail: shawn@actionable.co
 Twitter: @shawnhooper
 WordPress Slack:

    shooper @shawnhooper - shawnhooper.ca