Blog

What is: Query

Query is a term used to describe the act of selecting, inserting, or updating data in a database. In WordPress, queries are used to access data from your MySQL database. WordPress is written using PHP and MySQL.

Each time you are viewing a WordPress page, there are MySQL queries running in the background to fetch the data from database. This data is then used to dynamically generate HTML for your browser. When users create, edit, or delete anything from WordPress, there are database queries that convert user input into instructions which are then executed by running database queries.

WordPress comes with built-in functions and classes allowing developers and users to query database. For example, WP_Query, WP_User_Query, get_comments(), get_the_terms(), get_posts(), wp_get_recent_posts(), etc.

Below is an example of querying the database for posts within a category using WP_Query class.

$query = new WP_Query('cat=12');

The result will contain all posts within that category which can then be displayed using a template.

Developers can also query WordPress database directly by calling in the $wpdb class.

function my_custom_query() {
global $wpdb;
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";
}

Queries can also be used to create new records in the database (e.g. creating a Post), or editing existing records. These are done automatically by WordPress, but plugin developers can also use queries to store their own data in the WordPress database.

global $wpdb;
$wpdb->query( 
    $wpdb->prepare( 
        "
                DELETE FROM $wpdb->postmeta
         WHERE post_id = %d
         AND meta_key = %s
        ",
            13, 'stars'
        )
);

A WordPress query can look for items based on tags, categories, title, status and more. Developers can use this to create custom widgets, or custom pages that display a specific set of content.

This post was originally published in the wpbeginner glossary.

Additional Reading