[wp-hackers] ordering by a custom field
The WordPress Web Warlock
wordpress at web-warlocks.net
Wed May 12 18:35:35 UTC 2010
En/na Brian Fidler ha escrit:
> I'm setting up a custom query for a second loop that displays on my page. I
> want to set a custom field titled 'artwork_order' and be able to access that
> field using ORDER BY in my query.
> something like this, however this isn't working.
> ORDER BY wp_postmeta.meta_value['artwork_order'] ASC
> Is there a proper way to do this?
You can do that with $wp_query and get_posts / query_posts setting the
params orderby to meta_value, and meta_key to "artwork_order" or whatever.
But if you absolutely need to use the $wpdb query directly, what you
need to do something like:
ORDER BY wp_postmeta.meta_value ASC
With $wpdb->prepare, that'd be
(...) WHERE wp_postmeta.meta_key=%s (...)
And, though you already know that, let me insist again: it's preferable
to do it with $wp_query and/or other API elements. If it's just for the
meta order, there's no need for SQL whatsoever.
More information about the wp-hackers