[wp-hackers] multiple calls to get_post_meta back to back as opposed to one call
Andrew Nacin
wp at andrewnacin.com
Thu Feb 7 21:43:10 UTC 2013
On Thu, Feb 7, 2013 at 4:30 PM, Haluk Karamete <halukkaramete at gmail.com>wrote:
> This question can be formulated as
>
> Would it make sense ( from the mysql quiery point of view ) to build a
> functionality so that the following 2 liner code
>
> $fields = array('field_1','field_2',....'field_10');
> extract(get_post_metas($post->ID,$fields,true));
>
> will practically be speaking equal to something like
>
> $field_1 = get_post_meta($post->ID,'field_1',true);
> $field_2 = get_post_meta($post->ID,'field_2',true);
> ...
> $field_10 = get_post_meta($post->ID,'field_10',true);
>
> First approach will be done with a single but slightly more
> complicated query whereas the latter will force 10 sql queries they
> tend to be simpler.
Test this and you will find that the latter is just one query, total. When
you call get_post_meta(), all meta for that post is queried and cached.
Additionally, only the first argument to get_post_meta() is required. Call
it with just a post ID and you'll get back all metadata.
Nacin
More information about the wp-hackers
mailing list