The parse_site_query WordPress PHP action fires after the site query vars have been parsed.
Usage
add_action('parse_site_query', 'your_custom_function');
function your_custom_function($query) {
// your custom code here
}
Parameters
$query(WP_Site_Query): The WP_Site_Query instance (passed by reference).
More information
See WordPress Developer Resources: parse_site_query
Examples
Modify the query before it’s executed
Modify the site query before it’s executed to display only public sites.
add_action('parse_site_query', 'modify_site_query');
function modify_site_query($query) {
$query->set('public', 1);
}
Log site query information
Log the site query information for debugging purposes.
add_action('parse_site_query', 'log_site_query');
function log_site_query($query) {
error_log(print_r($query->query_vars, true));
}
Customize the site query for specific pages
Customize the site query to display only public sites on the homepage and private sites on a specific page.
add_action('parse_site_query', 'customize_site_query');
function customize_site_query($query) {
if (is_front_page()) {
$query->set('public', 1);
} elseif (is_page('private-sites')) {
$query->set('public', 0);
}
}
Modify the site query to exclude a specific site
Exclude a specific site from the site query results.
add_action('parse_site_query', 'exclude_specific_site');
function exclude_specific_site($query) {
$excluded_sites = array(5); // Site IDs to exclude
$query->set('exclude', $excluded_sites);
}
Sort site query results by site creation date
Sort the site query results by the site creation date in descending order.
add_action('parse_site_query', 'sort_site_query_by_creation_date');
function sort_site_query_by_creation_date($query) {
$query->set('orderby', 'registered');
$query->set('order', 'DESC');
}