How do I query posts by a sub value with the API?

This is my first time working with REST, and I’m having difficulty getting posts by a meta key. I’ve added the meta keys I need using register_meta, and running a request on /wp-json/wp/v2/products, the output does contain my custom fields.

I know I can add ?slug={some slug}, or ?id={some id} to retrieve posts by those values, and that works fine in testing. But I can’t figure out how to parse the custom fields because they’re nested in the JSON data under a “meta” listing.

After Googling around for about an hour to no avail, I just started guessing at what I was supposed to do. I’ve tried a number of things like ?brand_name=test, ?meta[brand_name]=test, and ?[meta]brand_name=test, but none of those seem to do anything.

I’m sure I’m missing something obvious; I’d really appreciate some help. An example of my JSON data is below.

[
   {  
      "id":5,
      "date":"2017-05-04T10:36:10",
      "date_gmt":"2017-05-04T15:36:10",
      "guid":{  
         "rendered":"http://products.example.localhost/?post_type=product&p=5"
      },
      "modified":"2017-05-09T13:41:12",
      "modified_gmt":"2017-05-09T18:41:12",
      "slug":"12545xa573",
      "status":"publish",
      "type":"product",
      "link":"http://products.example.localhost/products/12545xa573/",
      "title":{  
         "rendered":"12545XA573"
      },
      "excerpt":{  
         "rendered":"",
         "protected":false
      },
      "author":1,
      "featured_media":32,
      "comment_status":"open",
      "ping_status":"open",
      "template":"",
      "format":"standard",
      "meta":{  
         "brand_name":"test",
         "sku":"12545XA573",
         "unit_of_measure":"FT, 1/8, 1/16",
         "length":"3.20 in"
      },
      "_links":{  
         "self":[  
            {  
               "href":"http://products.example.localhost/wp-json/wp/v2/products/5"
            }
         ],
         "collection":[  
            {  
               "href":"http://products.example.localhost/wp-json/wp/v2/products"
            }
         ],
         "about":[  
            {  
               "href":"http://products.example.localhost/wp-json/wp/v2/types/product"
            }
         ],
         "author":[  
            {  
               "embeddable":true,
               "href":"http://products.example.localhost/wp-json/wp/v2/users/1"
            }
         ],
         "replies":[  
            {  
               "embeddable":true,
               "href":"http://products.example.localhost/wp-json/wp/v2/comments?post=5"
            }
         ],
         "version-history":[  
            {  
               "href":"http://products.example.localhost/wp-json/wp/v2/products/5/revisions"
            }
         ],
         "wp:featuredmedia":[  
            {  
               "embeddable":true,
               "href":"http://products.example.localhost/wp-json/wp/v2/media/32"
            }
         ],
         "wp:attachment":[  
            {  
               "href":"http://products.example.localhost/wp-json/wp/v2/media?parent=5"
            }
         ],
         "curies":[  
            {  
               "name":"wp",
               "href":"https://api.w.org/{rel}",
               "templated":true
            }
         ]
      }
   }
]

Read more here: How do I query posts by a sub value with the API?

Leave a Reply

Your email address will not be published. Required fields are marked *