I already wrote about WP-CLI here early, but I’d like to share about the post update
command today.
For years, I’ve been using wp post update
to update a unique post per time by running wp post update
followed by the post ID and whatever I want to edit.
$ wp post update 123 --post_author=456
The command above will update the post ID 123 to apply the author 456 to it.
Although that command is really efficient, it’s kinda boring to run multiple command instances to apply the same information (post author, for instance) to multiple posts.
Currently, these are the command examples in the WP-CLI documentation:
$ wp post update 123 --post_name=something --post_status=draft
Success: Updated post 123.
# Update a post with multiple meta values.
$ wp post update 123 --meta_input='{"key1":"value1","key2":"value2"}'
Success: Updated post 123.
As I had focused on the examples, I never paid much attention to the command description::
wp post update
WP-CLI Documentation
Updates one or more existing posts.
Updates one or more existing posts.
Yup! The examples in the documentation don’t cover editing multiple posts at once (wp post delete
does mention that), but the wp post update
command can edit more than one post ID.
How cool is that?
Now it is no longer necessary to run the same command several times just changing the post ID.
Examples
To update more than one post with only one command, you just need to inform the posts ID like this:
$ wp post update 123 456 --post_author=789
Success: Updated post 123.
Success: Updated post 456.
That command will update the posts ID 123 and 456 to apply the author ID 789 to them.
What if I need to edit all posts in a given post type? You can achieve that by nesting two commands like this:
$ wp post update $(wp post list --post_type=page --format=ids) --post_author=123
Success: Updated post 123.
Success: Updated post 456.
In this command, all pages (--post_type=page
) will be updated to receive the author ID 123.
Giving back to the community
As I know there are more people like me out there paying more attention to examples than to descriptions, I sent a Pull Request adding the examples to the WP-CLI documentation. The new examples will be published on the next WP-CLI release 🙂