The found_sites_query WordPress PHP filter allows you to modify the query used to retrieve the found site count.
Usage
add_filter('found_sites_query', 'my_custom_found_sites_query', 10, 2);
function my_custom_found_sites_query($found_sites_query, $site_query) {
// your custom code here
return $found_sites_query;
}
Parameters
$found_sites_query(string) – The SQL query used to retrieve found site count. Default is ‘SELECT FOUND_ROWS()’.$site_query(WP_Site_Query) – The WP_Site_Query instance.
More information
See WordPress Developer Resources: found_sites_query
Examples
Change the found_sites_query
Modify the default found_sites_query to use a custom SQL query.
add_filter('found_sites_query', 'change_found_sites_query', 10, 2);
function change_found_sites_query($found_sites_query, $site_query) {
$found_sites_query = 'SELECT COUNT(*) FROM wp_blogs';
return $found_sites_query;
}
Exclude specific sites from count
Exclude specific sites from the found_sites_query by their site ID.
add_filter('found_sites_query', 'exclude_sites_from_count', 10, 2);
function exclude_sites_from_count($found_sites_query, $site_query) {
$found_sites_query = str_replace('SELECT FOUND_ROWS()', 'SELECT COUNT(*) FROM wp_blogs WHERE blog_id NOT IN (2, 3)', $found_sites_query);
return $found_sites_query;
}
Filter sites by domain
Filter the found_sites_query to count only sites with a specific domain.
add_filter('found_sites_query', 'filter_sites_by_domain', 10, 2);
function filter_sites_by_domain($found_sites_query, $site_query) {
$found_sites_query = 'SELECT COUNT(*) FROM wp_blogs WHERE domain LIKE "%example.com%"';
return $found_sites_query;
}
Filter sites by creation date
Filter the found_sites_query to count only sites created within a specific date range.
add_filter('found_sites_query', 'filter_sites_by_creation_date', 10, 2);
function filter_sites_by_creation_date($found_sites_query, $site_query) {
$start_date = '2023-01-01';
$end_date = '2023-03-31';
$found_sites_query = "SELECT COUNT(*) FROM wp_blogs WHERE registered >= '$start_date' AND registered <= '$end_date'";
return $found_sites_query;
}
Display the total number of sites
Display the total number of sites using the found_sites_query filter.
add_filter('found_sites_query', 'display_total_sites_count', 10, 2);
function display_total_sites_count($found_sites_query, $site_query) {
global $wpdb;
$total_sites = $wpdb->get_var($found_sites_query);
echo 'Total Sites: ' . $total_sites;
return $found_sites_query;
}