views:

64

answers:

1

Hi, i am modifying a plugin slightly to meet my needs, and need to change this query to return post ID's of just one category. I know it has something to do with INNER JOIN, but cant get the query right.

Here is the original query

$query = "SELECT ID as PID FROM $wpdb->posts";
$results = $wpdb->get_results($querydetails,ARRAY_A);

EDIT: ok, i found the way to make the query

$query = "
SELECT ID as PID FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON
($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON
($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
WHERE $wpdb->posts.post_status = 'publish'
AND $wpdb->term_taxonomy.taxonomy = 'category'
AND $wpdb->term_taxonomy.term_id = 3
";
A: 

WordPress recommends you use query_posts() wherever possible when retrieving posts from the database. You can try this instead:

// $cat contains the category ID
$posts = query_posts('cat=' . $cat);
BoltClock
thanks, this is not at theme level however. its in a plugin and i dont want to modify things too much at all.
mroggle