The networks_clauses filter allows you to modify the network query clauses used when querying for networks in a WordPress multisite installation.
Usage
add_filter('networks_clauses', 'my_networks_clauses_filter', 10, 2); function my_networks_clauses_filter($clauses, $query) { // your custom code here return $clauses; }
Parameters
- $clauses (string[]): An associative array of network query clauses.
- $query (WP_Network_Query): The current instance of WP_Network_Query (passed by reference).
Examples
Modify the ORDER BY clause
add_filter('networks_clauses', 'modify_networks_order_by', 10, 2); function modify_networks_order_by($clauses, $query) { $clauses['orderby'] = 'ORDER BY domain ASC'; return $clauses; }
This example modifies the ORDER BY clause to sort networks by their domain in ascending order.
Add a custom WHERE clause
add_filter('networks_clauses', 'add_custom_where_clause', 10, 2); function add_custom_where_clause($clauses, $query) { $clauses['where'] .= ' AND domain LIKE "%example%"'; return $clauses; }
This example adds a custom WHERE clause to the network query, filtering networks with ‘example’ in their domain name.
Modify LIMIT and OFFSET
add_filter('networks_clauses', 'modify_limit_and_offset', 10, 2); function modify_limit_and_offset($clauses, $query) { $clauses['limits'] = 'LIMIT 10 OFFSET 20'; return $clauses; }
This example modifies the LIMIT and OFFSET values in the network query to display 10 networks starting from the 21st network.
Modify the JOIN clause
add_filter('networks_clauses', 'modify_networks_join', 10, 2); function modify_networks_join($clauses, $query) { global $wpdb; $clauses['join'] .= " LEFT JOIN {$wpdb->site_meta} ON ({$wpdb->site}.id = {$wpdb->site_meta}.site_id)"; return $clauses; }
This example modifies the JOIN clause to include the site_meta table in the network query.
Add a GROUP BY clause
add_filter('networks_clauses', 'add_group_by_clause', 10, 2); function add_group_by_clause($clauses, $query) { $clauses['groupby'] = 'GROUP BY domain'; return $clauses; }
This example adds a GROUP BY clause to the network query, grouping the networks by their domain.