[wp-hackers] Pull Latest Post from Each of 6 Categories
Peter Westwood
peter.westwood at ftwr.co.uk
Tue May 5 08:05:03 GMT 2009
On 5 May 2009, at 08:40, Mike Schinkel wrote:
> "Austin Matzko" <if.website at gmail.com> wrote:
>>
>> I am arguing against using MySQL directly, not suggesting
>> that my way is better than what he's already doing.
>
> Fair point. OTOH I'm challenging the conventional wisdom that it is
> always best to use the WordPress API. In most cases I agree that use
> of the WordPress API is best, especially in plugins hosted on Extend
> but I'm not convinced that it always makes more sense to use the
> WPAPI instead of hardcoding SQL.
>
The reason we recommend avoiding direct SQL is to reduce the worry of
forward-compatibility for your theme or plugin.
We always try and keep the API backward compatible, we may not keep
the same db structure.
With respect to the problem at hand:
"Show the latest post from 6 different categories on the front page"
I would recommend either the current approach,
i.e. six WP_Query using loops which query for the required posts
individually.
If this is too slow then move the heavy work into something which
happens on admin pages, by this I mean something like the following:
Keep an option in the db which contains an array containing the six
post ids you want to display and update this option when a new post is
written in one of the categories.
Then you can as far as I remember do a single WP_Query loop with the
post_ids specified using 'post__in' and keep to always using the API.
This moves any heavy code to the backend where it will run when
required.
Calling a hefty SQL query with subqueries or hairy JOINs is no going
to be performant.
Cheers
westi
--
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