Title: Version 1.4.0 released
Author: Daniel Bachhuber
Published: October 17, 2017

---

 [  ](https://profiles.wordpress.org/danielbachhuber/) [Daniel Bachhuber](https://profiles.wordpress.org/danielbachhuber/)
1:56 pm _on_ October 17, 2017      

# Version 1.4.0 released

Happy release day!

We’re excited to bring you WP-CLIWP-CLI WP-CLI is the Command Line Interface for
WordPress, used to do administrative and development tasks in a programmatic way.
The project page is [http://wp-cli.org/](http://wp-cli.org/) [https://make.wordpress.org/cli/](https://make.wordpress.org/cli/)
v1.4.0. In just two short months, we’ve merged 308 pull requests from 42 contributors.

## New faces

You may have noticed a few new faces around the project. This is our motley crew
of committers:

 * Martin ([@gitlost](https://github.com/gitlost)) lives in Dublin, Ireland. Check
   out his work with `wp db search` and `wp search-replace --log` (see below).
 * Siddharth ([@Sidsector9](https://github.com/Sidsector9)) resides in Pune, India.
   His enhancements to `wp doctor` and `wp profile` will be available soon in a 
   release near you.
 * Takayuki ([@miya0001](https://github.com/miya0001)) is based out of Kyoto, Japan.
   He’s been making numerous improvements across the entire project; you never know
   what his next pull request will fix.

They’ve already had an amazing impact on the project. Please pass along your thanks
when you have the chance.

## Log search-replace transformations

If you’ve ever wanted to see what transformations are taking place with `wp search-
replace`, now you can!

Use `wp search-replace --log` to display transformations as they happen, or `wp 
search-replace --log=transformations.log` to save the transformations to a file [
[#35](https://github.com/wp-cli/search-replace-command/pull/35), [#39](https://github.com/wp-cli/search-replace-command/pull/39)]:

    ```
    $ wp search-replace 'http://' 'https://' --log
    wp_options.option_value:1
    < http://wordpress-develop.dev
    > https://wordpress-develop.dev
    wp_options.option_value:2
    < http://wordpress-develop.dev
    > https://wordpress-develop.dev
    +------------+--------------+--------------+------+
    | Table      | Column       | Replacements | Type |
    +------------+--------------+--------------+------+
    | wp_options | option_value | 3            | PHP  |
    +------------+--------------+--------------+------+
    Success: Made 3 replacements.
    ```

It’s even more beautiful in color. Check out [this asciicinema video for the full glory](https://asciinema.org/a/140798).

Note: `wp search-replace` is much slower when logging transformations, so please
use it wisely.

## See registered image sizes

Does uploading a new image take forever? You might have too many registered image
sizes!

Both themes and plugins make use of `add_image_size()` [[ref](https://developer.wordpress.org/reference/functions/add_image_size/)]
to define names for image sizes they expect to use in templating. For each registered
image size with a hard crop, WordPress has to create the cropped version on upload.
With dozens of image sizes, uploading an image can take tens of seconds.

Use `wp media image-size` to see all of the image sizes registered to WordPress [
[#36](https://github.com/wp-cli/media-command/pull/36), [#37](https://github.com/wp-cli/media-command/pull/37),
[#39](https://github.com/wp-cli/media-command/pull/39), [#49](https://github.com/wp-cli/media-command/pull/49)]:

    ```
    $ wp media image-size --format=count
    55
    ```

55 is too many!

## Everything else in v1.4.0

**New and notable**

 * `wp cli has-command`: Detect whether a command is registered [[#4349](https://github.com/wp-cli/wp-cli/pull/4349)].
 * `wp site (mature|unmature|public|unpublic)`: Manage `mature` and `public` status
   of a site [[#63](https://github.com/wp-cli/entity-command/pull/63)].
 * `wp * (pluck|patch)`: Fetch and modify serialized data in options and metaMeta
   Meta is a term that refers to the inside workings of a group. For us, this is
   the team that works on internal WordPress sites like WordCamp Central and Make
   WordPress. [[#24](https://github.com/wp-cli/entity-command/pull/24), [#65](https://github.com/wp-cli/entity-command/pull/65)].
 * `wp user (spam|unspam)`: Mark a user as spam or not spam [[#74](https://github.com/wp-cli/entity-command/pull/74),
   [#86](https://github.com/wp-cli/entity-command/pull/86), [#90](https://github.com/wp-cli/entity-command/pull/90)].

**Command improvements**

 * `comment list`:
    - Improves performance of `--format=count` [[#64](https://github.com/wp-cli/entity-command/pull/64)].
 * `core download`:
    - Use `--skip-content` to download WordPress without default themes/plugins (
      US locale only) [[#37](https://github.com/wp-cli/core-command/pull/37), [#40](https://github.com/wp-cli/core-command/pull/40),
      [#41](https://github.com/wp-cli/core-command/pull/41)].
 * `core update`:
    - Makes use of `halt_on_error` to catch error and release lock [[#38](https://github.com/wp-cli/core-command/pull/38)].
 * `db export`:
    - Includes `Y-m-d` in default export file name [[#36](https://github.com/wp-cli/db-command/pull/36)].
 * `db search`:
    - Caters for reserved word column/table names [[#40](https://github.com/wp-cli/db-command/pull/40)].
    - Changes default delimiter to `chr(1)` [[#46](https://github.com/wp-cli/db-command/pull/46)].
    - Fixes match in non-regex case [[#45](https://github.com/wp-cli/db-command/pull/45)].
    - Lessens context duplication by shortening and appending context if it overlaps
      with the next match [[#55](https://github.com/wp-cli/db-command/pull/55)].
    - Avoids displaying default delimiter on regex fail in db search [[#56](https://github.com/wp-cli/db-command/pull/56)].
 * `export`:
    - Adds `--stdout` to write WXR to `STDOUT` [[#13](https://github.com/wp-cli/export-command/pull/13)].
    - Adds `--max_file_size=-1` to avoid splitting export files [[#12](https://github.com/wp-cli/export-command/pull/12),
      [#21](https://github.com/wp-cli/export-command/pull/21)].
    - Adds `--max_num_posts=<num>` to limit number of posts in an export file [[#15](https://github.com/wp-cli/export-command/pull/15)].
 * `import`:
    - Avoids use of `GLOB_BRACE` for compatibility with Alpine Linux [[#14](https://github.com/wp-cli/import-command/pull/14)].
 * `media import`:
    - Properly handles query strings on image import to prevent security error [
      [#35](https://github.com/wp-cli/media-command/pull/35)].
    - Adds `--preserve-filetime` argument to support persisting file modification
      time [[#42](https://github.com/wp-cli/media-command/pull/42)].
 * `media regenerate`:
    - Skips non-thumbnailed PDFs & other images rather than fail [[#48](https://github.com/wp-cli/media-command/pull/48)].
 * `package browse`:
    - Adds deprecation notice [[#36](https://github.com/wp-cli/package-command/pull/36)].
 * `package install`:
    - Supports package names that differ from repository names [[#31](https://github.com/wp-cli/package-command/pull/31)].
 * `package (install|uninstall)`:
    - Only includes Composer return code when it’s set [[#40](https://github.com/wp-cli/package-command/pull/40)].
 * `package uninstall`:
    - Removes repository entry when uninstalling [[#37](https://github.com/wp-cli/package-command/pull/37)].
 * `plugin install`:
    - Skips renaming ZIPs coming from a GitHubGitHub GitHub is a website that offers
      online implementation of git repositories that can easily be shared, copied
      and modified by other developers. Public repositories are free to host, private
      repositories require a paid subscription. GitHub introduced the concept of
      the ‘pull request’ where code changes done in branches by contributors can
      be reviewed and discussed before being merged by the repository owner. [https://github.com/](https://github.com/)
      archive release/tag [[#45](https://github.com/wp-cli/extension-command/pull/45)].
 * `plugin list`:
    - Wraps all uses of `get_plugins()` with the `all_plugins` filterFilter Filters
      are one of the two types of Hooks [https://codex.wordpress.org/Plugin_API/Hooks](https://codex.wordpress.org/Plugin_API/Hooks).
      They provide a way for functions to modify data of other functions. They are
      the counterpart to Actions. Unlike Actions, filters are meant to work in an
      isolated manner, and should never have side effects such as affecting global
      variables and output. [[#31](https://github.com/wp-cli/extension-command/pull/31)].
    - Includes dropins like `object-cache.php` when listing installed plugins [[#55](https://github.com/wp-cli/extension-command/pull/55)].
 * `plugin search`:
    - Only displays pagination message when `--format=table` [[#56](https://github.com/wp-cli/extension-command/pull/56)].
 * `scaffold child-theme`:
    - Transforms spaces to underscores when scaffolding a child themeChild theme
      A Child Theme is a customized theme based upon a Parent Theme. It’s considered
      best practice to create a child theme if you want to modify the CSS of your
      theme. [https://developer.wordpress.org/themes/advanced-topics/child-themes/](https://developer.wordpress.org/themes/advanced-topics/child-themes/)[
      [#40](https://github.com/wp-cli/scaffold-command/pull/40)].
 * `scaffold plugin`:
    - Adds `package-lock.json`, `yarn.lock` to distignore template [[#57](https://github.com/wp-cli/scaffold-command/pull/57)].
 * `scaffold plugin-tests`:
    - Uses `$TMPDIR` in `bin/install-wp-tests.sh` to allow temp directory override[
      [#39](https://github.com/wp-cli/scaffold-command/pull/39)].
    - Uses latest branch for test library in `bin/install-wp-tests.sh`, and always
      gets the latest major releaseMajor Release A set of releases or versions having
      the same major version number may be collectively referred to as “X.Y” -- 
      for example version 5.2.x to refer to versions 5.2, 5.2.1, and all other versions
      in the 5.2. (five dot two dot) branch of that software. Major Releases often
      are the introduction of new major features and functionality. when 2 digit
      WP versions are used [[#35](https://github.com/wp-cli/scaffold-command/pull/35)].
    - Removes XDebug in scaffolded `.travis.yml` to improve performance [[#49](https://github.com/wp-cli/scaffold-command/pull/49)].
    - Improves error message when `phpunit` is run before `bin/install-wp-tests.
      sh` [[#55](https://github.com/wp-cli/scaffold-command/pull/55)].
    - Shows progress when invoking `phpcs` [[#64](https://github.com/wp-cli/scaffold-command/pull/64)].
    - Adds PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-
      used open source general-purpose scripting language that is especially suited
      for web development and can be embedded into HTML. [https://www.php.net/manual/en/index.php](https://www.php.net/manual/en/index.php)
      7.0 and 7.1 to scaffolded GitLab configuration [[#68](https://github.com/wp-cli/scaffold-command/pull/68)].
 * `scaffold (post-type|taxonomy)`:
    - Enhances pluralization by internalizing Doctrine library [[#54](https://github.com/wp-cli/scaffold-command/pull/54),
      [#58](https://github.com/wp-cli/scaffold-command/pull/58), [#59](https://github.com/wp-cli/scaffold-command/pull/59)].
 * `search-replace`:
    - Adds `esc_sql_ident()` function to escape column/table names [[#23](https://github.com/wp-cli/search-replace-command/pull/23)].
    - Adds `--regex-delimiter` argument and validation for the `--regex-flags` argument[
      [#28](https://github.com/wp-cli/search-replace-command/pull/28), [#29](https://github.com/wp-cli/search-replace-command/pull/29),
      [#30](https://github.com/wp-cli/search-replace-command/pull/30)].
    - Adds `--report` flag so report can be suppressed with `--no-report`; `--report-
      changed-only` flag option to only report changed fields [[#32](https://github.com/wp-cli/search-replace-command/pull/32)].
    - Avoids displaying default delimiter on regex failure [[#40](https://github.com/wp-cli/search-replace-command/pull/40)].
 * `site delete`:
    - Prevent deleting the root site on multisiteMultisite Multisite is a WordPress
      feature which allows users to create a network of sites on a single WordPress
      installation. Available since WordPress version 3.0, Multisite is a continuation
      of WPMU or WordPress Multiuser project. WordPress MultiUser project was discontinued
      and its features were included into WordPress core. [Advanced Administration Handbook -> Create A Network.](https://developer.wordpress.org/advanced-administration/multisite/create-network/),
      which WordPress coreCore Core is the set of software required to run WordPress.
      The Core Development Team builds WordPress. doesn’t permit [[#73](https://github.com/wp-cli/entity-command/pull/73)].
 * `user import-csv`:
    - Permits importing CSV from STDIN [[#100](https://github.com/wp-cli/entity-command/pull/100)].

**Framework enhancements**

 * Brings codebase inline with WordPress Coding StandardsWordPress Coding Standards
   The Accessibility, PHP, JavaScript, CSS, HTML, etc. coding standards as published
   in the WordPress [Coding Standards Handbook](https://developer.wordpress.org/coding-standards/).
   May also refer to [The collection of PHP_CodeSniffer rules](https://github.com/WordPress/WordPress-Coding-Standards/)(
   sniffs) used to format and validate PHP code developed for WordPress according
   to the PHP coding standards. while narrowly avoiding committer mutiny [[#4058](https://github.com/wp-cli/wp-cli/issues/4058)].
 * Improves AutoloadSplitter regexes [[#4422](https://github.com/wp-cli/wp-cli/pull/4422)].
 * Add skips argument to `WP_CLI\Utils\report_batch_operation_results()` [[#4429](https://github.com/wp-cli/wp-cli/pull/4429)].
 * Provides dictionary-based suggestions for common misspellings [[#4392](https://github.com/wp-cli/wp-cli/pull/4392)].
 * Introduces new ‘halt_on_error’ to overload exit in `WP_CLI\Utils\http_request()`[
   [#4383](https://github.com/wp-cli/wp-cli/pull/4383)].
 * When extracting, fails back to `tar xz` when `PharData` throws an Exception [
   [#4371](https://github.com/wp-cli/wp-cli/pull/4371)].
 * Adds support for running commands over `vagrant ssh` [[#4348](https://github.com/wp-cli/wp-cli/pull/4348)].
 * Supports upper- and lowercase ‘Y’ when prompting a flag [[#4334](https://github.com/wp-cli/wp-cli/pull/4334)].
 * Gives suggestions when exiting early on `wp help` [[#4266](https://github.com/wp-cli/wp-cli/pull/4266),
   [#4303](https://github.com/wp-cli/wp-cli/pull/4303)].

**Contributors to this release (42 total):** [aaemnnosttv](https://github.com/aaemnnosttv),
[AaronRutley](https://github.com/AaronRutley), [ako80218](https://github.com/ako80218),
[anhskohbo](https://github.com/anhskohbo), [atimmer](https://github.com/atimmer),
[BhargavBhandari90](https://github.com/BhargavBhandari90), [danielbachhuber](https://github.com/danielbachhuber),
[desrosj](https://github.com/desrosj), [diggy](https://github.com/diggy), [domantasg](https://github.com/domantasg),
[drzraf](https://github.com/drzraf), [eliseferguson](https://github.com/eliseferguson),
[ethanclevenger91](https://github.com/ethanclevenger91), [Flimm](https://github.com/Flimm),
[fumikito](https://github.com/fumikito), [GaryJones](https://github.com/GaryJones),
[gitlost](https://github.com/gitlost), [goldenapples](https://github.com/goldenapples),
[hearvox](https://github.com/hearvox), [Ippey](https://github.com/Ippey), [javorszky](https://github.com/javorszky),
[jdub233](https://github.com/jdub233), [johnbillion](https://github.com/johnbillion),
[kurudrive](https://github.com/kurudrive), [Lewiscowles1986](https://github.com/Lewiscowles1986),
[mimosafa](https://github.com/mimosafa), [mitchelldmiller](https://github.com/mitchelldmiller),
[mitraval192](https://github.com/mitraval192), [miya0001](https://github.com/miya0001),
[n8finch](https://github.com/n8finch), [nameherocom](https://github.com/nameherocom),
[nextgenthemes](https://github.com/nextgenthemes), [ryotsun](https://github.com/ryotsun),
[schlessera](https://github.com/schlessera), [shadyvb](https://github.com/shadyvb),
[Sidsector9](https://github.com/Sidsector9), [stevegrunwell](https://github.com/stevegrunwell),
[szepeviktor](https://github.com/szepeviktor), [takezou](https://github.com/takezou),
[Umangvaghela](https://github.com/Umangvaghela), [waviaei](https://github.com/waviaei),
[wp-make-coffee](https://github.com/wp-make-coffee)

### Share this:

 * [  Threads ](https://make.wordpress.org/cli/2017/10/17/version-1-4-0-released/?share=threads)
 * [  Mastodon ](https://make.wordpress.org/cli/2017/10/17/version-1-4-0-released/?share=mastodon)
 * [  Bluesky ](https://make.wordpress.org/cli/2017/10/17/version-1-4-0-released/?share=bluesky)
 * [  Facebook ](https://make.wordpress.org/cli/2017/10/17/version-1-4-0-released/?share=facebook)
 * [  X ](https://make.wordpress.org/cli/2017/10/17/version-1-4-0-released/?share=x)
 * [  LinkedIn ](https://make.wordpress.org/cli/2017/10/17/version-1-4-0-released/?share=linkedin)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcli%2F2017%2F10%2F17%2Fversion-1-4-0-released%2F%23respond&locale=en_US)

 1.  ![](https://secure.gravatar.com/avatar/bf20d8815740249621e7d104461191efefa32de8a2a4df25a14dce5dc70823d7?
     s=32&d=mm&r=g)
 2.   [Bunty](https://profiles.wordpress.org/bhargavbhandari90/)  2:15 pm _on_ October
     17, 2017
 3.  Thanks to all contributors and special thanks to New Faces.
 4.  ![](https://secure.gravatar.com/avatar/43d0aa8581d3dee2b5d34706634764378cd905cdf42270665df5ca3fc11380f8?
     s=32&d=mm&r=g)
 5.   [John Parris](https://profiles.wordpress.org/mindctrl/)  3:04 pm _on_ October
     17, 2017
 6.  Good stuff! Thanks to everyone that’s making WP-CLIWP-CLI WP-CLI is the Command
     Line Interface for WordPress, used to do administrative and development tasks 
     in a programmatic way. The project page is [http://wp-cli.org/](http://wp-cli.org/)
     [https://make.wordpress.org/cli/](https://make.wordpress.org/cli/) even greater!
 7.  ![](https://secure.gravatar.com/avatar/78ba9322855bebab38e40cda95a1b28f1a46798823c88651249b25a6b34af6fa?
     s=32&d=mm&r=g)
 8.   [Renato Alves](https://profiles.wordpress.org/espellcaste/)  3:31 pm _on_ October
     17, 2017
 9.  Congrats on the improvements! 🙂
 10. ![](https://secure.gravatar.com/avatar/d9497b3462a5a1f13e4568b9589341cc251a08162da3b5a06ac39d0fa0e07663?
     s=32&d=mm&r=g)
 11.  [Siddharth Thevaril](https://profiles.wordpress.org/nomnom99/)  3:58 pm _on_ 
     October 17, 2017
 12. The asciicinema video <3
 13. ![](https://secure.gravatar.com/avatar/ebfcc082ccfe65783205e94182cb5777f35ec101162db937f9a5996b3a758b0f?
     s=32&d=mm&r=g)
 14.  [rich4ard](https://profiles.wordpress.org/rich4ard/)  2:28 am _on_ October 18,
     2017
 15. Awesome work! Love for all the contributors.
 16. ![](https://secure.gravatar.com/avatar/746c21daa54013ec4ea7a1e11ba0bd6adcb0bf7e88b093d672f3c1d78faba3e1?
     s=32&d=mm&r=g)
 17.  [Mithun Raval](https://profiles.wordpress.org/mitraval192/)  9:12 am _on_ October
     23, 2017
 18. Congrats to all CLICLI Command Line Interface. Terminal (Bash) in Mac, Command
     Prompt in Windows, or WP-CLI for WordPress. Lovers for new release and thanks 
     to all contributors for helping to release.
 19. ![](https://secure.gravatar.com/avatar/fd8d84c51d741f76d292ecb05187ebbcdd2d28fbc819f56d121c1dd645333715?
     s=32&d=mm&r=g)
 20.  [ppoveda](https://profiles.wordpress.org/ppoveda/)  5:46 pm _on_ November 14,
     2017
 21. Awesome and fantastic work!! Really thanks!

### Leave a Reply 󠀁[Cancel reply](https://make.wordpress.org/cli/2017/10/17/version-1-4-0-released/?output_format=md#respond)󠁿

You must be [logged in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcli%2F2017%2F10%2F17%2Fversion-1-4-0-released%2F&locale=en_US)
to post a comment.

# Post navigation

[← WP Plugin & Theme Checksums Project – Update](https://make.wordpress.org/cli/2017/10/15/wp-plugin-theme-checksums-project-update/)

[What do you wish `wp scaffold` could do for you? →](https://make.wordpress.org/cli/2017/11/08/what-do-you-wish-wp-scaffold-could-do-for-you/)