The pre_get_sites WordPress PHP action fires before sites are retrieved, allowing you to modify the WP_Site_Query instance.
Usage
add_action('pre_get_sites', 'my_custom_pre_get_sites'); function my_custom_pre_get_sites($query) { // your custom code here return $query; }
Parameters
- $query (WP_Site_Query): Current instance of WP_Site_Query (passed by reference).
More information
See WordPress Developer Resources: pre_get_sites
Examples
Exclude a specific site from the query
This example excludes a specific site with the ID 5 from the query.
add_action('pre_get_sites', 'exclude_specific_site'); function exclude_specific_site($query) { $query->query_vars['exclude'] = array(5); return $query; }
Limit the number of sites retrieved
This example limits the number of retrieved sites to 3.
add_action('pre_get_sites', 'limit_site_query'); function limit_site_query($query) { $query->query_vars['number'] = 3; return $query; }
Order sites by the last updated date
This example orders the sites by the last updated date in descending order.
add_action('pre_get_sites', 'order_sites_by_last_updated'); function order_sites_by_last_updated($query) { $query->query_vars['orderby'] = 'last_updated'; $query->query_vars['order'] = 'DESC'; return $query; }
Filter sites by a specific language
This example filters the sites to display only those with a specific language, in this case, English.
add_action('pre_get_sites', 'filter_sites_by_language'); function filter_sites_by_language($query) { $query->query_vars['lang_id'] = 'en'; return $query; }
Filter sites by a specific domain
This example filters the sites to display only those with a specific domain, in this case, ‘example.com’.
add_action('pre_get_sites', 'filter_sites_by_domain'); function filter_sites_by_domain($query) { $query->query_vars['domain'] = 'example.com'; return $query; }