Filter Parameters (Set the Post Base)

You can combine the target parameters with filter parameters in order to narrow down the scope of considered posts to a certain subsample. Time parameters refer to the time of publishing. Wherever WordPress requires an array1, you submit the items as comma-separated list. Supported are (according to superficial testing and the documentation):

authorauthor ID or comma-separated list of IDs; see WordPress documentation
author_nameuses user_nicename (Try the last piece of the URL of the author’s page.); see WordPress documentation
author__insee WordPress documentation
author__not_insee WordPress documentation
catID or comma-separated list of IDs of categories2; prepend a “-” to a number to exclude this category.; see WordPress documentation
category_namecategory slug2; see WordPress documentation
category__andsee WordPress documentation
category__insee WordPress documentation
category__not_insee WordPress documentation
custom_taxonomy_slug, custom_taxonomy_field,
custom_taxonomy_term
Filter by a custom taxonomy.
You need to use at least “custom_taxonomy_slug” and “custom_taxonomy_term”. “custom_taxonomy_slug” is the identifier of that taxonomy, such as “product_tag” or “product_cat”, while “custom_taxonomy_term” is the specific tag or category you are searching. “custom_taxonomy_field” tell how to identify the tag or category. Default is “slug” (“tshirts”, “special-product”, …). Allowed values are “term_id”, “name”, “slug” and “term_taxonomy_id”. You can also use a comma-separated list of terms.
before

(or date_query_before)

Only posts from before the specified time will be considered.
The value can be anything that can be understood by strtotime(), including relative formats like “last monday” or “1 year ago”.3
after

(or date_query_after)

See before. This one restricts the choice of posts to those after the specified time. You can combine both parameters.
dayday of the month; see WordPress documentation
includecomma-separated list of post4 IDs
excludecomma-separated list of post4 IDs
hoursee WordPress documentation
ignore_sticky_postsSet to 0 if you want to consider the stickiness of posts and sort sticky posts to the front. By default sticky posts are treated as normal posts (ignore_sticky_posts=1).5 WordPress puts sticky posts to the beginning even when searching for oldest posts. Since we need to retrieve post objects when ignore_sticky_posts=0, you may run into PHP memory problems if you have many or huge posts and try to pick a random.
minutesee WordPress documentation
monthnummonth as number 1-12; see WordPress documentation
post_typeDefault is “post”. Needs to be set if you want to redirect to anything else, like “product” or “page”. This can be a comma-separated list.
Note for custom post types: Requires has_archive in the definition of that post type.
post__insee WordPress documentation
post__not_insee WordPress documentation
post_name__insee WordPress documentation
post_parentsee WordPress documentation
post_parent__insee WordPress documentation
post_parent__not_insee WordPress documentation
ssearch for a keyword; see WordPress documentation
secondsee WordPress documentation
tagtag slug2
wweek of the year; see WordPress documentation
has_password1 for posts with passwords; 0 for posts without passwords
tag_idtag ID
tag__andsee WordPress documentation
tag__insee WordPress documentation
tag__not_insee WordPress documentation
tag_slug__andsee WordPress documentation
tag_slug__insee WordPress documentation
comment_countFilter by the number of comments. Negative values search for posts that have not that number of comments (!=). (requires WP 4.9+)
comment_count_minFilter by a minimum number of comments (>=). (requires WP 4.9+)
comment_count_maxFilter by a maximum number of comments (<=). (requires WP 4.9+)

Example

Redirect to a random post from the past month:

http://www.example.com/?redirect_to=random&after=1%20month%20ago

Find many more examples on the example page.


Footnotes

  1. Search the parameter on the linked page and check if “(array)” is written behind it.[]
  2. For custom taxonomies use custom_taxonomy_slug and custom_taxonomy_term[][][]
  3. Write spaces as “%20”. Pay attention to key words like “year”, which are in singular.[]
  4. or page, with parameter “custom_type=page”[][]
  5. Please note that we decided to reverse the default WordPress behavior in order to provide the functionality that most users would expect.[]