Giter Site home page Giter Site logo

wp-revisions-cli's Introduction

trepmal/wp-revisions-cli

Manage revisions

Build Status

Quick links: Using | Installing | Contributing | Support

Using

This package implements the following commands:

wp revisions list

List all revisions

wp revisions list [--post_type=<post-type>] [--post_id=<post-id>] [--fields=<fields>] [--yes] [--format=<format>]

OPTIONS

[--post_type=<post-type>]
	List revisions for given post type(s).

[--post_id=<post-id>]
	List revisions for given post. Trumps --post_type.

[--fields=<fields>]
	Comma-separated list of fields to be included in the output.
	---
	default: ID,post_title,post_parent
	---

[--yes]
	Answer yes to the confirmation message.

[--format=<format>]
	Format to use for the output. One of table, csv or json.

EXAMPLES

wp revisions list
wp revisions list --post_id=2
wp revisions list --post_type=post,page

wp revisions dump

Delete all revisions

wp revisions dump [--hard] [--yes]

OPTIONS

[--hard]
	Hard delete. Slower, uses wp_delete_post_revision(). Alias to wp revisions clean -1

[--yes]
	Answer yes to the confirmation message.

EXAMPLES

wp revisions dump

wp revisions clean

Delete old revisions

wp revisions clean [<keep>] [--post_type=<post-type>] [--after-date=<yyyy-mm-dd>] [--before-date=<yyyy-mm-dd>] [--post_id=<post-id>] [--hard] [--dry-run]

OPTIONS

[<keep>]
	Number of revisions to keep per post. Defaults to WP_POST_REVISIONS if it is an integer

[--post_type=<post-type>]
	Clean revisions for given post type(s). Default: any

[--after-date=<yyyy-mm-dd>]
	Clean revisions on posts published on or after this date. Default: none.

[--before-date=<yyyy-mm-dd>]
	Clean revisions on posts published on or before this date. Default: none.

[--post_id=<post-id>]
	Clean revisions for given post.

[--hard]
	Hard delete. Slower, uses wp_delete_post_revision().

[--dry-run]
	Dry run, just a test, no actual cleaning done.

EXAMPLES

wp revisions clean
wp revisions clean 5
wp revisions clean --post_id=2
wp revisions clean 5 --post_type=post,page
wp revisions clean --after-date=2015-11-01 --before-date=2015-12-30
wp revisions clean --after-date=2015-11-01 --before-date=2015-12-30 --dry-run

wp revisions generate

Generate revisions

wp revisions generate [<count>] [--post_type=<post-type>] [--post_id=<post-id>]

OPTIONS

[<count>]
	Number of revisions to generate per post. Default 15

[--post_type=<post-type>]
	Generate revisions for given post type(s). Default any

[--post_id=<post-id>]
	Generate revisions for given post.

EXAMPLES

wp revisions generate 10
wp revisions generate --post_id=2
wp revisions generate 2 --post_type=post,page

wp revisions status

Get revision status

wp revisions status 

OPTIONS

EXAMPLES

wp revisions status

Installing

Installing this package requires WP-CLI v2.1 or greater. Update to the latest stable release with wp cli update.

Once you've done so, you can install this package with:

wp package install [email protected]:trepmal/wp-revisions-cli.git

Contributing

We appreciate you taking the initiative to contribute to this project.

Contributing isn’t limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation.

For a more thorough introduction, check out WP-CLI's guide to contributing. This package follows those policy and guidelines.

Reporting a bug

Think you’ve found a bug? We’d love for you to help us get it fixed.

Before you create a new issue, you should search existing issues to see if there’s an existing resolution to it, or if it’s already been fixed in a newer version.

Once you’ve done a bit of searching and discovered there isn’t an open or fixed issue for your bug, please create a new issue. Include as much detail as you can, and clear steps to reproduce if possible. For more guidance, review our bug report documentation.

Creating a pull request

Want to contribute a new feature? Please first open a new issue to discuss whether the feature is a good fit for the project.

Once you've decided to commit the time to seeing your pull request through, please follow our guidelines for creating a pull request to make sure it's a pleasant experience. See "Setting up" for details specific to working on this package locally.

Support

Github issues aren't for general support questions, but there are other venues you can try: https://wp-cli.org/#support

This README.md is generated dynamically from the project's codebase using wp scaffold package-readme (doc). To suggest changes, please submit a pull request against the corresponding part of the codebase.

wp-revisions-cli's People

Contributors

alexisbellido avatar brownian avatar danielbachhuber avatar philipjohn avatar trepmal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wp-revisions-cli's Issues

Plans for Multisite

Thanks for a really useful package, are there any plans to add a flag for Multisite?

--before-date does not work as expected

I tried using the "--before-date" param. So what I was expecting delete all revisions older than the enter date, but I have to enter the "keep" param too. Your script leaves exactly the "keep" number in all posts older than the before date. Is it possible to delete all posts older than a specific date without entering a "keep" number?

validate post-id

Should validate post ID and return an error if it doesn't exist instead of returning empty results.

$ wp revisions list --post_id=99999999
+----+------------+-------------+
| ID | post_title | post_parent |
+----+------------+-------------+
+----+------------+-------------+

Recent changes aren't available in CLI package

I installed using wp package install trepmal/wp-revisions-cli which went fine.

Then I tried to use the new --fields parameter for wp revisions list (merged in #12) I get this:

Error: Parameter errors:
unknown --fields parameter

Does the WP CLI package need to be republished with the new changes or something?

Not touching post meta?

Hey hey

Loving this and just started using it here :-) Thank you for sharing.

Can I ask - why are you not clearing out old post meta? Seems a bit of a biggy to miss. Going to run a SQL query to clear up just now but wondered why.

--hard is (very) slow

Sample database (lines, size in MB)

| wp_postmeta                  | 418795 | 101.83 |
| wp_posts                     |   5235 |  11.67 |  ### (3030 are revisions)

Then individual DELETE are runs which is very slow:

Cleaning revisions for 627 post(s)  90 % [===================================>        ] 22:34  / 181:48
Cleaning revisions for 627 post(s)  98 % [==========================================> ] 55:36 / 1:38
Cleaning revisions for 627 post(s)  100% [============================================] 64:39   #### 1 hour
| wp_postmeta                  | 27107 | 8.55 |
| wp_posts                     |  3232 | 3.02 |
  1. because wp_delete_post_revision basically does:
wp_get_post_revision( $revision_id )
wp_delete_post( $revision->ID );
do_action( 'wp_delete_post_revision', $revision->ID, $revision );
  1. And that wp_delete_post itself is slow.

Could we think about a --quick which simply DELETE FROM {postmeta} WHERE post_id IN ( implode( <deleted_post_id> ) ) ?

Support for quiet global parameter

I'm planning run this tool to give periodic maintenance to our databases, however its somewhat cumbersome running it in a cron script because the output of the progress bar. A check for the global --quiet parameter would be nice in order to not using it if the user has requested a silent run.

Support for date range cleaning

I've come to this command looking for a programmable way to clean out revisions without resorting to plugins hooked to the request cycle through wp-cron events. It's very useful and I thank you for putting up onto this.

A nice enhancement has been proposed in the PR #2 from @alexisbellido, however the date filter could be applied to the traversal of the whole list of posts of the requested post_type, making the traversal faster.

I'm just filing this issue in order to take this proposal to you, I've forked the repo and I'm willing to make a PR later on this week.

Install error

Running the install command: wp package install trepmal/wp-revisions-cli (WP-CLI 1.5.0)

Results in:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 16777224 bytes) in phar:///opt/sp/bin/wp-cli.phar/vendor/composer/composer/src/Composer/DependencyResolver/RuleSet.php on line 83
Reverted composer.json.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.