Get the most out of your Centmin Mod LEMP stack
Become a Member

WebPerf Harness the Power of WP-CLI to Manage Your WordPress Sites

Discussion in 'All Internet & Web Performance News' started by eva2000, Mar 10, 2016.

Tags:
  1. eva2000

    eva2000 Administrator Staff Member

    30,947
    6,915
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,413
    Local Time:
    8:44 AM
    Nginx 1.13.x
    MariaDB 5.5
    WordPress is well known for being very user-friendly, and that is one of the reasons it has become one of the most popular content management systems on the web. But when it comes to managing multiple WordPress sites and repeating the same operations over and over again it can become quite a tedious task for developers. And that brings us to WP-CLI, a set of command line tools to help speed up the development process and accomplish tasks more efficiently and quickly. Many WordPress professionals use tools like ManageWP or WP Remote; WP-CLI is a powerful alternative of these tools specifically for developers!



    WP-CLI’s mission is to be, quantitatively, the fastest interface for developers to manage WordPress. – wp-cli.org
    What Is WP-CLI?


    WP-CLI is an open source set of command line tools to help make web developers lives easier when it comes to managing WordPress installations. You can install WordPress (including Multisite), update plugins, take backups, perform database operations, publish content, manage WP-Cron events, and perform hundreds of other tasks without ever touching your web browser. If you prefer working from the command-line then WP-CLI is your friend![​IMG]

    WP-CLI was originally created by Andreas Creten and Cristi Burcă who pushed their first source code to GitHub on November 06, 2011. In recent years there has been a lot of buzz around WP-CLI and according to Google trends the term “WP-CLI” is being searched more than ever before.

    [​IMG]

    Daniel Bachuber, who has now maintained the project since 2014, is also pushing to unlock the potential of the WP REST API at the command line with his new RESTful WP-CLI project. He started a KickStarter campaign for RESTful WP-CLI and his $17,500 goal was completely funded within only 12 hours. That just goes to show you that the WordPress developer community is wanting to see more command line tools and support!

    How to Install WP-CLI


    To get started with WP-CLI you need to ensure that you have SSH access to your web host or server. All modern providers like Digital Ocean, Linode, Vultr provide this and allow you to spin up a VPS in a matter of minutes. There are even managed WordPress hosts like Pantheon which give you free dev environments and support WP-CLI. Other requirements for WP-CLI are PHP 5.3.2 or later, WordPress, 3.4 or later, and a UNIX like environment. If you are on a Mac you can just dive right into the installation! If you happen to be on Windows, you can use command-line tool like Cygwin or a virtual machine. See David’s awesome Windows and WP-CLI tutorial. Follow the steps below to install WP-CLI.

    Note: In this example we are taking screenshots from a Windows + WP-CLI setup.

    1. SSH into your server.
    2. Get the latest version of WP-CLI from GitHub using cURL or wget. The following command will extra the WP-CLI files to root of your user directory.
      curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

      You run the command below to check and make sure phar downloaded correctly.

      php wp-cli.phar --info

      It will then output like this.[​IMG]
      • Make it executable.
        chmod +x wp-cli.phar
      • This is an optional step but we recommend moving the file to a folder so you can execute it from anywhere, and also give it an easy name like ‘wp’ so you can use the WP-CLI commands by typing it at the start.
        sudo mv wp-cli.phar /usr/local/bin/wp
    WP-CLI Commands


    Here is a list of the basic commands you can use with WP-CLI. You can see a more in-depth explanation of each command here. Or you can type the following in the command-line to generate helpful information and the sub-commands available.

    wp help
    cache
    Manage the object cache.
    cap
    Manage user capabilities.
    cli
    Get information about WP-CLI itself.
    comment
    Manage comments.
    core
    Download, install, update and otherwise manage WordPress proper.
    cron
    Manage WP-Cron events and schedules.
    db
    Perform basic database operations.
    eval
    Execute arbitrary PHP code.
    eval-file
    Load and execute a PHP file.
    export
    Export content to a WXR file.
    help
    Get help on WP-CLI, or on a specific. command.
    import
    Import content from a WXR file.
    media
    Manage attachments.
    menu
    List, create, assign, and delete menus
    network
    option
    Manage options.
    plugin
    Manage plugins.
    post
    Manage posts.
    post-type
    Manage post types.
    rewrite
    Manage rewrite rules.
    role
    Manage user roles.
    scaffold
    Generate code for post types, taxonomies, etc.
    search-replace
    Search/replace strings in the database.
    server
    Launch PHP’s built-in web server for this specific WordPress installation.
    shell
    Interactive PHP console.
    sidebar
    Manage sidebars.
    site
    Perform site-wide operations.
    super-admin
    List, add, and remove super admins from a network.
    taxonomy
    Manage taxonomies.
    term
    Manage terms.
    theme
    Manage themes.
    transient
    Manage transients.
    user
    Manage users.
    widget
    Manage sidebar widgets.​

    There is also a list of known WP-CLI community commands used in popular third-party plugins like BackupBuddy, MainWP, WP Migrate DB Pro, etc. And since it is open source you can even write your own WP-CLI commands.

    WP-CLI How To’s


    Now that you have WP-CLI installed, there are literally hundreds of tasks you can accomplish and speed up using WP-CLI. Below we will discuss a few common examples.

    Install WordPress with WP-CLI[​IMG]


    Probably the most important one, how to install WordPress! We will be using the basic core command.

    1. First you need to download WordPress. You can download a certain version of WordPress by appending the following with the version number, example: --version=4.1.
      wp core download
    2. Then you need to create your wp-config.php file. Obviously this assumes you have already created the database.
      wp core config --dbname=databasename --dbuser=databaseuser --dbpass=databasepassword --dbhost=localhost --dbprefix=prfx_
    3. Then we install WordPress using the follow command.
      wp core install --url=example.com --title="WordPress Website Title" --admin_user=admin_user --admin_password=admin_password --admin_email="email@domain.com"
    Backup WordPress Database


    [​IMG]

    Before doing anything else you should always have a backup of your database. You can use the db command to quickly export a .sql file to the root of your website.



    wp db export

    Update WordPress with WP-CLI


    Before updating WordPress you might want to check the version of your current WordPress installation. To do that you can use the core command and it will return the current version.

    wp core version

    [​IMG]

    To then update your WordPress install all you have to do is run the following command below. You can start to see how fast using WP-CLI really is! You could backup your database, check the current version, and update WordPress, literally in a matter of seconds with only three commands!

    wp core update
    Update WordPress Site URLs


    [​IMG]

    If you are installing WordPress or moving it around from local to production you might need to update the WordPress and site address URLs. To do this you can use the wp option command.

    wp option update home https://newaddress.com
    wp option update siteurl https://newaddress.com
    Install WordPress Plugins


    [​IMG]

    Before installing new WordPress plugins you might want to check the status of what is already installed. To do this you can use the wp plugin command. The following will display a current list of plugins installed and a legend letting you know if they are inactive, active, or if there is an update available.

    wp plugin status


    [​IMG]

    You can then install any plugin from the WordPress repository. That’s right, you can even install KeyCDN’s free cache enabler plugin with WP-CLI. The name is simply the end of the slug in the repository.

    [​IMG]

    You can then install it by running the following command.

    wp plugin install cache-enabler
    wp plugin activate cache-enabler

    The same can be done to uninstall the plugin.

    wp plugin uninstall cache-enabler
    Update Plugins with WP-CLI


    Updating plugins is a very similar process. To do this we gain use the wp plugin command.

    wp plugin update cache-enabler
    Install WordPress Themes


    Installing WordPress themes is almost identical to the plugins process. Perhaps you want to get an older WordPress theme back for testing. Remember, this is pulling from the repository. To do this we use the wp theme command.

    wp theme install twentyten
    wp theme activate twentyten

    [​IMG]

    Update WordPress Themes


    Similarly you can also update WordPress themes using the wp theme command. First you will probably want to grab a current list of your themes. It will show the version next to them.

    wp theme list


    [​IMG]

    To update a theme run the following command.

    wp theme update twentyten
    Automating Tasks


    One of the biggest benefits of WP-CLI is of course automating some of those repetitive tasks, especially for those working with WordPress multisite. You can use bash scripts or do it in a single command like we used below to install our CDN Enabler plugin, Cache Enabler plugin, and Optimus Image Optimizer plugin all at the same time.

    for site in $(wp site list --field=url); do wp plugin install cdn-enabler --url=$site --activate wp plugin install cache-enabler --url=$site --activate wp plugin install optimus --url=$site --activate; done

    For launching new WordPress sites this opens up a whole new world of automation. Just imagine running only a few commands and your 20+ plugin WordPress site is up and going and backed up while you take a coffee break.

    WP-CLI Resources

    Summary


    As you can probably tell you can get as advanced and intricate as you want with WP-CLI. With the ability to also create your own commands, the sky is pretty much the limit on what you can automate. If you haven’t started using WP-CLI yet, give it a try, it might just become your new best friend as you unleash the power of the command line with WordPress.

    Related Articles

    Featured

    250GB Free Traffic
    Supercharge your Website Today with KeyCDN
    HTTP/2 – Free SSL – RESTful API – 24+ POPs – Instant Purge

    The post Harness the Power of WP-CLI to Manage Your WordPress Sites appeared first on KeyCDN Blog.

    Continue reading...