Expression Result
Evaluate expressions using Builderius's Expression Language directly within GraphQL queries using expression_result() Pro Feature.
expression_result() enables:
- data transformation: Modify Data output (eg. different date format)
- calculations: Use dynamic and static numeric values to do math
- conditional logic: Output different valuse based on custom conditions
- string manipulation: Change case, concatinate strings...
Expressions use JavaScript-like syntax packed with 100+ built in functions.
This article covers the expression_result() GraphQL function. For detailed Expression Language syntax, operators, and complete function reference, see Expression Language →.
Expression Function Syntax
- Definition
- Example
- JSON Output
Evaluate expressions using JavaScript-like syntax with expression_result():
General syntax:
expression_result(
expression: "your_expression_here"
)
Parameters:
expression(required) - Expression to evaluate using Expression Language
Auto-wrapping: Expressions are automatically wrapped in {{}} if not already wrapped:
expression_result(expression: "upper(post_title)")
# Same as:
expression_result(expression: "{{upper(post_title)}}")
Basic expression examples:
{
# Math calculations
sum_result: expression_result(expression: "5 + 3 * 2")
}
JSON response from the example:
{
"sum_result": 11
}
The function returns strings, numbers, booleans, arrays, or objects depending on the expression result.
Expression Usage Examples
- WordPress Data
- With Variables
Using WordPress context data in expressions:
{
post {
post_title
post_content
post_date
post_author {
display_name
}
# Transform post data
title_length: expression_result(expression: "count(post_title)")
short_excerpt: expression_result(expression: "limit_words(post_content, 25, '...')")
reading_time: expression_result(expression: "ceil(count(split(post_content, ' ')) / 200) . ' min read'")
formatted_date: expression_result(expression: "date('F j, Y', strtotime(post_date))")
author_first_name: expression_result(expression: "split(post_author.display_name, ' ')[0]")
# Conditional content
has_content: expression_result(expression: "post_content ? 'Has content' : 'No content'")
is_long_post: expression_result(expression: "count(split(post_content, ' ')) > 500 ? 'Long read' : 'Quick read'")
}
}
GraphQL Variables in Expressions:
Expressions can access other fields in your query and can reference global data:
Variable syntax:
- Local variables:
field_namesyntax - Global variables:
[[global_variable]]syntax
{
post {
post_title
post_content
custom_excerpt: acf_value(name: "custom_excerpt")
# Expression automatically accesses other fields
display_excerpt: expression_result(
expression: "custom_excerpt ? custom_excerpt : limit_words(post_content, 30)"
)
# Combine multiple fields
seo_title: expression_result(
expression: "post_title . ' | ' . '[[wp.site_name]]'"
)
# Use field data in calculations
title_and_content_length: expression_result(
expression: "count(post_title) + count(post_content)"
)
}
}
Expression vs PHP Function Comparison
| Feature | expression_result() | php_function_output() |
|---|---|---|
| Syntax | JavaScript-like expressions | PHP function calls |
| Functions | 100+ custom Builderius functions | Any PHP function |
| Operators | Full expression operators (+, -, *, /, ==, etc.) | Only function arguments |
| Context | Automatic access to query data | Must pass via arguments |
| Complexity | Can combine multiple operations | One function per call |
| Use Case | Data transformation, calculations, logic | Calling specific WordPress/PHP functions |
When to Use Each
Use expression_result() for:
- Data transformation and formatting
- Mathematical calculations
- Conditional logic and display rules
- String manipulation and processing
- Array operations
Use php_function_output() for:
- WordPress-specific functions
- Plugin API calls
- Complex PHP operations
- Accessing WordPress data not available in GraphQL
For complete Expression Language syntax, all available functions, operators, and advanced patterns, see:
Expression Language Introduction →
- 100+ built-in functions
- Operators and conditional logic
- Array processing and transformations
- WordPress integration functions
- Advanced expression patterns
Use expression_result() to transform and process data within your GraphQL queries, enabling dynamic content that responds intelligently to your data with powerful, flexible expressions.