WP_Query is a class defined in WordPress. It allows developers to write custom queries and display posts using different parameters. It is possible for developers to directly query WordPress database. However, WP_Query is one of the recommended ways to query posts from WordPress database.
Below is an example of a simple WP_Query which displays posts from movies category:
1 2 3 4 5 | <?php // The Query $the_query = new WP_Query( 'category_name=movies' ); ?> |
The sample code above does not automatically display posts. To display results of the query, user would need to use the WordPress loop. Like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php // The Query $the_query = new WP_Query( 'category_name=movies' ); // The Loop if ( $the_query ->have_posts() ) { echo '<ul>' ; while ( $the_query ->have_posts() ) { $the_query ->the_post(); echo '<li>' . get_the_title() . '</li>' ; } echo '</ul>' ; } else { // no posts found } /* Restore original Post Data */ wp_reset_postdata(); ?> |
WP_Query is a powerful tool there are many parameters that can be used to write more complex and advance queries. WP_Query can be used to create nested loops (a WordPress loop inside a loop). WordPress developers can use it in their plugins and themes to create their own custom displays of posts.
A full list of WP_Query parameters is available on WordPress Codex.