Skip to main content

Website Queries

Access site-wide data, WordPress options, URL parameters, and global functions that work outside specific content contexts.

What This Guide Covers

Global functions provide access to site-wide data and settings that aren't tied to specific posts, users, or terms. These functions work at the root level of your GraphQL queries and give you access to WordPress options, URL parameters, environment data, and custom global fields.

You'll learn how to:

  • Get WordPress site settings and options
  • Access URL parameters, cookies, and server variables
  • Generate URLs for pages, posts, and archives
  • Query ACF Options Pages and MetaBox Settings
  • Use advanced functions like PHP function calls
  • Handle form URLs and security nonces
  • Access hook arguments and environment data

URLs & Navigation

Get essential site URLs:

{
# Core site URLs
home_url: front_page_url
current_page_url: current_url
blog_url: posts_index_page_url
}
info

URL helper functions work ONLY at root level, NOT inside loops or nested objects like posts_query.posts or terms_query.terms. Use php_function_output with WordPress functions inside loops.

Site Settings & WordPress Options

Get core WordPress settings

{
# Standard WordPress options
site_name: option_value(name: "blogname")
site_tagline: option_value(name: "blogdescription")
site_url: option_value(name: "siteurl")
home_url: option_value(name: "home")
admin_email: option_value(name: "admin_email")

# Site configuration
date_format: option_value(name: "date_format")
time_format: option_value(name: "time_format")
start_of_week: option_value(name: "start_of_week")
timezone_string: option_value(name: "timezone_string")
}

Request & Environment Data

Access URL query parameters ($_GET):

{
# Get URL parameters with fallbacks
search_query: url_parameter(name: "s", fallback: "")
current_page: url_parameter(name: "page", fallback: 1)
category_filter: url_parameter(name: "category", fallback: "all")
sort_order: url_parameter(name: "order", fallback: "desc")
}

ACF Options Pages

Access ACF Options Page fields:

{
# Site branding
site_logo: acf_value(name: "site_logo")
site_favicon: acf_value(name: "site_favicon")
default_hero_image: acf_value(name: "default_hero_image")

# Contact information
company_phone: acf_value(name: "company_phone")
company_email: acf_value(name: "company_email")
company_address: acf_value(name: "company_address")

# Social media
facebook_url: acf_value(name: "facebook_url")
twitter_handle: acf_value(name: "twitter_handle")
linkedin_company: acf_value(name: "linkedin_company")
}

MetaBox Settings Pages

Access MetaBox Settings Page fields (requires option_name):

{
# Basic site settings
contact_email: metabox_value(field_id: "contact_email", option_name: "site_settings")
company_address: metabox_value(field_id: "company_address", option_name: "site_settings")
phone_number: metabox_value(field_id: "main_phone", option_name: "site_settings")

# Business information
business_hours: metabox_value(field_id: "operating_hours", option_name: "site_settings")
company_registration: metabox_value(field_id: "business_registration", option_name: "site_settings")
tax_number: metabox_value(field_id: "company_tax_id", option_name: "site_settings")

# Marketing settings
newsletter_signup_url: metabox_value(field_id: "newsletter_url", option_name: "site_settings")
promotional_banner: metabox_value(field_id: "promo_banner_text", option_name: "site_settings")
special_offers_enabled: metabox_value(field_id: "show_special_offers", option_name: "site_settings")
}

Additional Global Functions

Call WordPress PHP functions:

{
# Basic WordPress functions
wp_version: php_function_output(
function: "get_bloginfo"
arguments: ["version"]
)

current_user_id: php_function_output(
function: "get_current_user_id"
arguments: []
)

# Functions with parameters
post_permalink: php_function_output(
function: "get_permalink"
arguments: [123]
fallback: ""
)

# Theme functions
theme_name: php_function_output(
function: "wp_get_theme"
arguments: []
fallback: "Unknown"
)

# Custom functions
custom_data: php_function_output(
function: "my_custom_function"
arguments: ["param1", "param2"]
fallback: "default"
)
}

Common Use Cases

Complete site header configuration:

{
# Ger the url parameter
search_query: url_parameter(name: "s", fallback: "")

# Get a curent page url
current_page: current_url

# Get user language
user_language: cookie_parameter(name: "language", fallback: "en")

# Get the Browser Agent
user_agent: php_function_output(
function: "wp_is_mobile"
) @private

# Respond with a message
is_mobile: expression_result(
expression: "(user_agent) ? 'mobile-style' : 'desktop-style'"
)
}