[wp-hackers] meta_key and meta_value query variables don't work in the backend?

Peter Westwood peter.westwood at ftwr.co.uk
Fri Jan 15 21:49:28 UTC 2010

On 15 Jan 2010, at 19:24, Matthew Gerring wrote:

> What I mean is, I'm writing a plugin to allow a client to sort pages  
> on the edit pages screen. I have it set up to sort by author, title,  
> and date, and filter by a custom taxonomy. I want to be able to sort  
> by custom field as well- all of the pages in this site have a custom  
> field called "Country" with a set drop-down list of countries.
> To do all the sorting and filtering so far, I used the  
> manage_pages_query hook to add query variables to the request, and  
> it has worked perfectly. All it does is put all the query variables  
> in an array and pass it to the wp() function. But if I try to use  
> the meta_key and meta_value variables, which are available if I use  
> them in a theme (i.e. in the front end), nothing happens. So it  
> appears that while you can pull out posts according to custom fields  
> in a theme, you can't do the same thing on the manage pages/posts  
> screens in the back end, and I'm wondering why.

Bear in mind that the wp() call only accept query vars which are  
specified in the $public_query_vars and $private_query_vars arrays  
which are part of the WP class and these don't include anything to do  
with post_meta.

The public_query_vars are those which can be specified in a url and  
the private_query_vars are the extra ones which can be specified only  
by code

You will need to extend the list of private_query_vars which it  
supports to get the post_meta ones passed thorugh.

Peter Westwood
http://blog.ftwr.co.uk | http://westi.wordpress.com
C53C F8FC 8796 8508 88D6 C950 54F4 5DCD A834 01C5

More information about the wp-hackers mailing list