-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
WP-CLI includes some arguments that need an associative array as input (like wp post create --meta_input), but it does not support any way of entering these on the command line.
A previous issue on this was closed in favor of handling CRUD operations through the WP REST API, however this is far from reliable/complete and we will not switch to using that method as a new default anytime soon.
This is why I want to reevaluate how we could process shell input to accept associative (and maybe even nested) arrays.
My current thought is to have a utility function to pass all these arguments through, like WP_CLI\Utils\parse_array(), which would try to parse the provided input as either JSON array syntax (["foo":"bar"]) or PHP array syntax (["foo"=>"bar"]). Whatever arguments need (associative/nested) arrays would run their value through this function, and in case it returns false, through an error that the argument could not be parsed/is not a valid array.
We'll probably detect lots of edge cases over time. Having this parsing in one central location makes bug fixes across all commands easy.
Related: #1323