Use SQL-querys in the loop – WITH template tags
2010-01-16 @ 14:35The problem
I want to use SQL-querys within the WordPress loop and still be able to use the template tags. In this example I want both posts and pages within the loop. How can I do that? In both query_posts and WP Query I can only get specific posts OR pages, not both.
I’ve been searching the web for a way to combine multiple WP Query objects somehow, because I only want one loop.
The solution
The solution is by not using WP Query at all. This is how it works:
- Write a SQL Query. This gives you a great freedom to just select the post / pages you need, or a combination of them.
- Create a result object by using the function get_results.
- If I get a result, loop it out in a foreach loop.
- Use the function setup_postdata to be able to use WordPress template tags.
<?php $query_sql = " SELECT * FROM $wpdb->posts WHERE post_type = 'post' OR post_type='page' ORDER BY post_title DESC "; $query_result = $wpdb->get_results($query_sql, OBJECT); ?> <?php if ($query_result): ?> <?php foreach ($query_result as $post): ?> <?php setup_postdata($post); ?> <h2><?php the_title(); ?></h2> <?php the_content(); ?> <?php endforeach; ?> <?php else : ?> <p>Not found</p> <?php endif; ?>
2009-12-21 @ 2:46 e m
Found this while looking for a way to do exactly what you defined as the problem, having both posts and pages in one loop. I really wanted to find a way to combine two different queries into one result set, but this works almost as well – thanks a lot!
2010-11-08 @ 3:48 f m
REferring back to your original post on Stack Overflow… couldn’t you use the following:
$my_query = new WP_Query(array(‘post_parent’ => 3, ‘post_type’ => array(‘post’,’page’)));
usually works for me…
2010-11-27 @ 10:41 f m
While we are talking about Use SQL-querys in the loop – WITH template tags – Multiple WP query objects / queryposts combined | devdevote.com, Another great option is to use a Flash intro template. If you have Flash, this is the perfect way to get a high quality Flash intro, without having to hire a Flash expert.
2011-06-01 @ 4:29 f m
I had a different problem, but your solution to your problem helped me a lot. Thank you.
2012-05-14 @ 6:08 f m
Thanks Jens. After mucking about with so many WP_Query sites online, I just tried your very simple and powerful code. So tweakable!
Question: do you know the ”taxonomy” type for comments and BBPress posts? I want a front page that includes posts, pages, comments, and BBPress pages all in the same query.
Thanks!
2012-05-14 @ 6:11 f m
Btw, this blog does not have a ”Subscribe to comments” function, so if you respond, could you pls write to me. Thx!
2013-01-12 @ 1:18 e m
Hello,
Thank you for your post. This could be the right solution of my problem. BUT: what i shall do for this query: i want to show posts from category A AND pages in the same query? Thank you for your help.
Regards