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
In this example we're going to choose 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"
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" )
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
- Stock value is higher than
- Products are sorted by title in ascending order.
"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
- Status is
- Author ID is
3, which is a real estate agent
- The property has the
For Salecategory assigned to it
- Custom field
_featuredis set to
1, making it a featured property in the theme
"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" => "=", ) )
Execute custom code to modify the export data on the fly.
Client Mode allows you to give access to other user roles to run/download specific exports.