Skip to main content

Logic

The Logic tag can build conditional rules for use by the If, Control, and Loop tags.

Overview

Here is a full example with explanataion below. It applies a set of rules to match weekend seminars from the event post type.

<Logic name=weekend_seminar>
<Rule taxonomy=event_type value=seminar />
<Any>
<Rule field=weekday value=saturday />
<Rule field=weekday value=sunday />
</Any>
</Logic>

<Loop post_type=event count=3>
<If logic=weekend_seminar>
Weekend seminar: <Field title /><br>
<Else />
Weekday seminar: <Field title /><br>
</If>
</Loop>

Logic tag

The Logic tag defines a set of rules using Rule, And, Or, and Not tags.

<Logic name=weekend_seminar>
...
</Logic>

It requires a name attribute, which gives a name to the rules defined. This can be referred to later in the page to evaluate the condition, such as for every post inside a loop.

Optionally, use the compare attribute to decide how the rules are combined: and, or, not. The default is and, which means all rules must be true.

Rule tag

The Rule tag is used to define a rule. It accepts all attributes supported by the If tag.

<Rule taxonomy=event_type value=seminar />

Operators: Any, All, Not

The Any, All, and Not tags are used to group rules together with a logical operator.

All rules must be true

<All>
<Rule ... />
<Rule ... />
</All>

All rules must be false

<All false>
<Rule ... />
<Rule ... />
</All>

At least one rule must be true

<Any>
<Rule ... />
<Rule ... />
</Any>

Not all rules are true

<Not>
<Rule ... />
<Rule ... />
</Not>

This is the opposite of All.

Use logic with other tags

The If tag supports the logic attribute, which evaluates the rules defined by the logic of that name.

<If logic=weekend_webinar>
...
<Else />
...
</If>

It can be used inside a Loop tag to filter items.

<Loop post_type=event>
<If logic=weekend_webinar>
...
</If>
</Loop>