rest api - WP API ignores filter parameter

admin2025-01-07  4

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...

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...

Share Improve this question asked Nov 25, 2016 at 12:24 MeshMesh 1212 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

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.

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1736263681a910.html

最新回复(0)