How to Customize Your WordPress Export with WP_Query

WP_Query is a WordPress class that allows you to fetch posts directly from the database. It's powerful enough for developers to perform extremely complex queries, but simple enough for a regular WordPress user to learn.

You can learn more about WP_Query and all of its parameters here: https://developer.wordpress.org/reference/classes/wp_query/

Rather than writing these WP_Query expressions by hand, you can use https://generatewp.com/wp_query/ to create them for.

Using WP_Query in WP All Export

Go to All Export › New Export and select the WP_Query Results option. Then select the query type from the drop-down. All of the custom post types available for export are added here automatically. In our default install, there are three options:

  • Post Type Query
  • User Query
  • Comment Query

These options use WP_Query, WP_User_Query and WP_Comment_Query.

In this example we're going to choose Post Type Query.

Post Type Query

Building the Query

The most basic query would include a post type and a post status. For example, to get all published posts in the default WordPress "Posts" post type, the query would be:

"post_type" => "post",
"post_status" => "publish"
Simple Posts Query

Alternatively you could export all Media Library items like images and attachments with this query:

"post_type" => "attachment", "post_status" => "inherit"

If you need to define multiple post types and multiple post statuses, you can use arrays. For example, you can get all pages and posts that are either pending, published, or drafts with the following query:

"post_type" => array( "post", "page" ),
"post_status" => array( "publish", "draft", "pending" )
Query multiple post types and statuses

Advanced WP_Query Example

The WP_Query class has the ability to do custom field queries, taxonomy queries, author checks, and much more. There's no way that we can cover all of the possibilities in this article, but here we'll cover some more advanced queries just to showcase the power of this feature.

Specific criteria for WooCommerce Products
For this example, we'll export a set of variable WooCommerce products with the following rules:

  • Product must be published.
  • Stock value is higher than 0.
  • Products are sorted by title in ascending order.

The query:

"post_type" => array( "product", "product_variation" ),
"post_status" => "publish",
"orderby" => "post_title",
"order" => "ASC",
"meta_query" => array( array(
     "key" => "_stock",
     "value" => 0,
     "compare" => ">"
) )

Custom Post Type Search
For this example, we'll search all posts in the post type properties added by a real estate theme. The criteria:

  • Post type is properties
  • Status is publish
  • Author ID is 3, which is a real estate agent
  • The property has the For Sale category assigned to it
  • Custom field _featured is set to 1, making it a featured property in the theme

The query:

"post_type" => "properties",
"post_status" => "publish",
"author" => 3,
"tax_query" => array( array(
     "taxonomy" =>      "property_category",
     "field" => "slug",
     "terms" => "for-sale",
) ),
"meta_query" => array( array(
     "key" => "featured",
     "value" => "1",
     "compare" => "=",
) )
cross