Bird
Raised Fist0
Wordpressframework~20 mins

Tax queries and meta queries in Wordpress - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Tax and Meta Query Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What posts are returned by this tax query?
Consider this WordPress query snippet. Which posts will it return based on the tax query?
Wordpress
<?php
$args = [
  'post_type' => 'product',
  'tax_query' => [
    [
      'taxonomy' => 'product_cat',
      'field' => 'slug',
      'terms' => ['electronics', 'appliances'],
      'operator' => 'AND'
    ]
  ]
];
$query = new WP_Query($args);
?>
APosts in 'electronics' category only
BPosts in either 'electronics' OR 'appliances' categories
CPosts in 'appliances' category only
DPosts in both 'electronics' AND 'appliances' categories
Attempts:
2 left
💡 Hint
The 'operator' key controls how terms are combined in tax queries.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in this meta query
Which option correctly fixes the syntax error in this meta query array?
Wordpress
<?php
$args = [
  'post_type' => 'post',
  'meta_query' => [
    'relation' => 'OR',
    [
      'key' => 'price',
      'value' => 100,
      'compare' => '>'
    ],
    [
      'key' => 'stock',
      'value' => 0,
      'compare' => '>='
    ]
  ]
];
$query = new WP_Query($args);
?>
AAdd a comma after 'relation' => 'OR' to separate it from the first array
BChange 'compare' => '>' to 'compare' => '>' (no change needed, code is correct)
CWrap the meta_query arrays inside another array to fix nesting
DReplace 'relation' => 'OR' with 'relation' => 'AND'
Attempts:
2 left
💡 Hint
Check array syntax carefully, especially commas between elements.
❓ state_output
advanced
2:00remaining
What is the value of $count after this meta query?
Given this code, what is the value of $count after running the query?
Wordpress
<?php
$args = [
  'post_type' => 'event',
  'meta_query' => [
    [
      'key' => 'event_date',
      'value' => date('Y-m-d'),
      'compare' => '>=',
      'type' => 'DATE'
    ]
  ]
];
$query = new WP_Query($args);
$count = $query->found_posts;
?>
AZero, because 'found_posts' is not set for meta queries
BNumber of 'event' posts with 'event_date' today or in the future
CNumber of 'event' posts with 'event_date' in the past
DNumber of all 'event' posts regardless of date
Attempts:
2 left
💡 Hint
The meta query filters posts by date compared to today.
🔧 Debug
advanced
2:00remaining
Why does this tax query return no posts?
This tax query returns no posts even though posts exist in the 'news' category. What is the cause?
Wordpress
<?php
$args = [
  'post_type' => 'post',
  'tax_query' => [
    [
      'taxonomy' => 'category',
      'field' => 'name',
      'terms' => 'news'
    ]
  ]
];
$query = new WP_Query($args);
?>
A'taxonomy' should be 'post_category' instead of 'category'
B'field' should be 'slug' instead of 'name'
C'terms' should be an array, not a string
DMissing 'operator' key causes no results
Attempts:
2 left
💡 Hint
Check the data type of 'terms' in tax queries.
🧠 Conceptual
expert
2:00remaining
How does combining tax_query and meta_query affect results?
If a WP_Query uses both 'tax_query' and 'meta_query' arrays, how are the results filtered?
APosts must match BOTH tax_query AND meta_query conditions
BPosts matching EITHER tax_query OR meta_query conditions are returned
COnly tax_query is applied; meta_query is ignored
DOnly meta_query is applied; tax_query is ignored
Attempts:
2 left
💡 Hint
Think about how multiple query parameters combine in WP_Query.

Practice

(1/5)
1. Which of the following best describes a tax_query in WordPress?
easy
A. It filters posts based on custom field values.
B. It sorts posts by date or title.
C. It filters posts based on categories, tags, or custom taxonomies.
D. It updates post metadata values.

Solution

  1. Step 1: Understand tax_query purpose

    A tax_query is used to filter posts by taxonomy terms like categories or tags.
  2. Step 2: Compare with meta_query

    A meta_query filters by custom fields, not taxonomies.
  3. Final Answer:

    It filters posts based on categories, tags, or custom taxonomies. -> Option C
  4. Quick Check:

    tax_query = taxonomy filter [OK]
Hint: Tax queries filter by taxonomy terms like categories [OK]
Common Mistakes:
  • Confusing tax_query with meta_query
  • Thinking tax_query sorts posts
  • Assuming tax_query updates data
2. Which of the following is the correct syntax to create a meta query filtering posts where the meta key 'color' equals 'blue'?
easy
A. tax_query => [ ['taxonomy' => 'color', 'field' => 'slug', 'terms' => 'blue'] ]
B. meta_query => [ ['key' => 'color', 'value' => 'blue', 'compare' => '='] ]
C. meta_query => [ ['key' => 'color', 'value' => 'blue', 'compare' => 'LIKE'] ]
D. meta_query => [ ['key' => 'color', 'value' => ['blue'], 'compare' => 'IN'] ]

Solution

  1. Step 1: Identify meta_query structure

    A meta query uses 'key', 'value', and 'compare' keys to filter custom fields.
  2. Step 2: Match exact equality

    To check exact match, 'compare' should be '=' and 'value' a string, not array.
  3. Final Answer:

    meta_query => [ ['key' => 'color', 'value' => 'blue', 'compare' => '='] ] -> Option B
  4. Quick Check:

    Exact match uses compare '=' [OK]
Hint: Use compare '=' for exact meta key-value match [OK]
Common Mistakes:
  • Using tax_query instead of meta_query
  • Using 'LIKE' when exact match needed
  • Passing value as array when not needed
3. What will the following query return?
query_posts([
'tax_query' => [[
'taxonomy' => 'category',
'field' => 'slug',
'terms' => ['news', 'updates'],
'operator' => 'AND'
]],
'meta_query' => [[
'key' => 'featured',
'value' => '1',
'compare' => '='
]]
]);
medium
A. Syntax error due to incorrect tax_query format.
B. Posts in either 'news' OR 'updates' categories with meta 'featured' = '1'.
C. Posts with meta 'featured' = '1' ignoring categories.
D. Posts in both 'news' AND 'updates' categories with meta 'featured' = '1'.

Solution

  1. Step 1: Analyze tax_query operator

    Operator 'AND' means posts must be in both 'news' and 'updates' categories simultaneously.
  2. Step 2: Analyze meta_query condition

    Meta query filters posts where 'featured' meta key equals '1'.
  3. Final Answer:

    Posts in both 'news' AND 'updates' categories with meta 'featured' = '1'. -> Option D
  4. Quick Check:

    tax_query 'AND' + meta_query '=' = Posts in both 'news' AND 'updates' categories with meta 'featured' = '1'. [OK]
Hint: Operator 'AND' means all terms must match in tax_query [OK]
Common Mistakes:
  • Confusing 'AND' with 'OR' operator
  • Ignoring meta_query filter
  • Assuming syntax error incorrectly
4. Identify the error in this tax query:
$args = [
'tax_query' => [
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => 'fiction'
]
];
$query = new WP_Query($args);
medium
A. tax_query must be an array of arrays, but here it's a single array.
B. The 'terms' value must be an array, not a string.
C. The 'field' key is invalid in tax_query.
D. WP_Query does not accept tax_query parameter.

Solution

  1. Step 1: Check tax_query structure

    tax_query expects an array of arrays, each inner array defines one taxonomy filter.
  2. Step 2: Identify the provided structure

    Here tax_query is a single associative array, missing the outer array wrapping.
  3. Final Answer:

    tax_query must be an array of arrays, but here it's a single array. -> Option A
  4. Quick Check:

    tax_query = array of arrays [OK]
Hint: tax_query always needs an outer array wrapping inner arrays [OK]
Common Mistakes:
  • Passing single array instead of array of arrays
  • Thinking 'terms' must always be array
  • Ignoring tax_query structure rules
5. You want to query posts that are in the 'events' category AND have a custom field 'priority' set to 'high'. Which is the correct way to combine tax_query and meta_query to achieve this?
medium
A. Use 'relation' => 'AND' to combine tax_query and meta_query for AND behavior.
B. Nest tax_query and meta_query inside a 'relation' => 'OR' array within 'meta_query'.
C. Combine tax_query and meta_query inside a single array without 'relation'.
D. Use 'relation' => 'OR' at the top level combining tax_query and meta_query arrays.

Solution

  1. Step 1: Understand combining queries

    tax_query and meta_query are combined with AND logic by default when both are included in the query args.
  2. Step 2: Correct structure

    Simply place both 'tax_query' and 'meta_query' as keys in the main query args array; no 'relation' is needed.
  3. Final Answer:

    Combine tax_query and meta_query inside a single array without 'relation'. -> Option A
  4. Quick Check:

    tax_query + meta_query default = AND [OK]
Hint: tax_query and meta_query default to AND logic [OK]
Common Mistakes:
  • Adding unnecessary 'relation' => 'AND'
  • Nesting queries inside one another
  • Using 'relation' => 'OR' for AND logic
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard