Skip to main content
Documentation/Dynamic Data/Conditions/Conditions Reference
Dynamic Data

Conditions Reference

Oxygen has one condition catalog, used in three places. The same "Post Type is Page" rule
you'd use to target a template is the rule you'd use to hide an element, written the same
way. This page is the catalog.

Where each place uses them:

How a condition is built

A condition row in the builder — the condition, its operand and its value

Every condition is three parts: the condition itself, an operand, and a value.
"Post Status · is · Published". The operands available depend on the condition — a date
offers is before and is after, a taxonomy offers is one of, is none of and is all
of
— and the value control adapts too, offering a post picker, a role list, a date field
or free text as appropriate.

Conditions combine with AND and OR. See
Element Display Conditions for how
groups are built.

What you'll actually see

The catalog below is the full set registered on a standard Oxygen install: 35
conditions
. You will rarely see all 35 at once, for two reasons.

The dropdown is filtered to the document you're editing. Each condition declares which
kinds of content it makes sense for, and Oxygen hides the rest. Editing an ordinary page,
the dropdown offers 23 of them — the archive-specific and post-specific ones are not
applicable and don't appear. Open a template targeting an archive and a different subset
appears.

Some conditions depend on plugins. Activating WooCommerce registers a further set of
product, cart and order conditions on top of these.

Note: two conditions are labelled Author. One is in the Singular group and
tests the author of the post being viewed; the other is in the Archive group and
tests whose author archive is being viewed. The group tells you which is which.

The catalog

The Query column marks the nine conditions that also work inside the Post Loop's Query
Builder.

Singular

Rules about the single post, page or attachment being viewed.

Condition Operands Query
Post is · is not ✅
Post Parent is one of · is none of
Page is · is not ✅
Page Parent is one of · is none of
Media is · is not ✅
Media Parent is one of · is none of
Post Type is one of · is none of
Post ID is · is not
Post Status is · is not
Has Taxonomy is one of · is none of · is all of ✅
Author is · is not ✅
Featured Image is ✅
Comments Number is greater than · is less than · is · is not ✅

Archive

Rules about the archive being viewed.

Condition Operands Query
Post Type is · is not
Author is · is not

Taxonomy

Condition Operands Query
Is Taxonomy is · is not

User

Rules about the person viewing the page.

Condition Operands Query
User Logged In Status is
User Role is one of · is none of
User Registration Date is after · is before

Date & Time

Note the split: Current conditions test when the page is being viewed; Post Date
and Post Modified Date test the content itself. Only the latter two can filter a query.

Condition Operands Query
Current Date (WordPress) is before · is after · is · is not · is one of · is none of
Current Time (WordPress) is before · is after
Current Month (WordPress) is one of · is none of
Day Of Week (WordPress) is one of · is none of
Post Date is after · is before ✅
Post Modified Date is after · is before ✅

Referrer

Rules about where the visitor came from.

Condition Operands Query
Referrer URL is · is not · contains · does not contain
Referrer Type is · is not

Other

Condition Operands Query
Dynamic Data is · is not · contains · does not contain · is empty · is not empty
Custom PHP (none — your code returns the answer)
Breakpoint is one of · is none of
Browser is one of · is none of
Operating System is one of · is none of
Content Created With is · is not
Search is · is not
WP_Query Found Posts Count is greater than · is less than

The two you'll use most

Dynamic Data is the general-purpose one. Instead of testing a fixed property it tests
any dynamic field — a custom field, a term name, a URL
parameter — with contains, is empty and the rest. Most "only show this if the field is
filled in" rules are this condition, not Custom PHP.

Custom PHP is the escape hatch: no operand, no
value, just code that returns true or false. It has its own page because it comes with its
own risks.

A note on dates

The conditions marked (WordPress) read the date and time from your WordPress timezone
setting, not the visitor's device. A "Current Time is after 17:00" rule fires at 17:00 in
the site's timezone for everyone, wherever they are.