I’m trying to return a list of posts or media via the Rest API
But it seems that when a filter incorrectly specified then a whole page of results is passed back.
So a curl command like
curl -gv "myamazingsite.co.uk/wp-json/wp/v2/media/?filter[id]=123"
returns all media items, instead of a empty list.
now
curl -gv "myamazingsite.co.uk/wp-json/wp/v2/media/?filter[year]=2016"
I get all media for that year.
and
curl -gv "myamazingsite.co.uk/wp-json/wp/v2/media/?filter[year]=2015"
returns an empty list [] , because there isn’t any..fine.
So, I assume that id is not a valid filter argument, but why do I not get an error message?
The documentation for filter arg just links to wp_query method, which seems to be all about the PHP function, I admit I know very little about PHP, so I find this very confusing as to what it is saying…
1 Answer
WP API will ignore filter values it doesn’t understand, so the following are essentially identical:
curl -gv "myamazingsite.co.uk/wp-json/wp/v2/media/?filter[id]=123"
curl -gv "myamazingsite.co.uk/wp-json/wp/v2/media/"
Any filter keys that are valid, however, will be used to filter the results, so if there are no images for the year 2015, the following will return nothing ([]
).
curl -gv "myamazingsite.co.uk/wp-json/wp/v2/media/?filter[year]=2015"
I’m not quite sure what you want your first curl command to return, if you could clarify, I’d be happy to expand this answer.