wppaste
WordPress

WP_Network_Query::get_networks(): array|int

Since
4.6.0
Source
wp-includes/class-wp-network-query.php:189
Gets a list of networks matching the query vars.

Return

array|int
List of WP_Network objects, a list of network IDs when 'fields' is set to 'ids', or the number of networks when 'count' is passed as a query var.

Hooks fired · 3

3 hooks fire while WP_Network_Query::get_networks() runs, in this order:

  1. do_action( pre_get_networks )actionline 199 (+10 into the body)

    Fires before networks are retrieved.

  2. apply_filters( networks_pre_query )filterline 233 (+44 into the body)

    Filters the network data before the query takes place.

  3. apply_filters( the_networks )filterline 309 (+120 into the body)

    Filters the network query results.

Uses · 11

Used by · 1

Source

	public function get_networks() {		$this->parse_query(); 		/**		 * Fires before networks are retrieved.		 *		 * @since 4.6.0		 *		 * @param WP_Network_Query $query Current instance of WP_Network_Query (passed by reference).		 */		do_action_ref_array( 'pre_get_networks', array( &$this ) ); 		$network_data = null; 		/**		 * Filters the network data before the query takes place.		 *		 * Return a non-null value to bypass WordPress' default network queries.		 *		 * The expected return type from this filter depends on the value passed		 * in the request query vars:		 * - When `$this->query_vars['count']` is set, the filter should return		 *   the network count as an integer.		 * - When `'ids' === $this->query_vars['fields']`, the filter should return		 *   an array of network IDs.		 * - Otherwise the filter should return an array of WP_Network objects.		 *		 * Note that if the filter returns an array of network data, it will be assigned		 * to the `networks` property of the current WP_Network_Query instance.		 *		 * Filtering functions that require pagination information are encouraged to set		 * the `found_networks` and `max_num_pages` properties of the WP_Network_Query object,		 * passed to the filter by reference. If WP_Network_Query does not perform a database		 * query, it will not have enough information to generate these values itself.		 *		 * @since 5.2.0		 * @since 5.6.0 The returned array of network data is assigned to the `networks` property		 *              of the current WP_Network_Query instance.		 *		 * @param array|int|null   $network_data Return an array of network data to short-circuit WP's network query,		 *                                       the network count as an integer if `$this->query_vars['count']` is set,		 *                                       or null to allow WP to run its normal queries.		 * @param WP_Network_Query $query        The WP_Network_Query instance, passed by reference.		 */		$network_data = apply_filters_ref_array( 'networks_pre_query', array( $network_data, &$this ) ); 		if ( null !== $network_data ) {			if ( is_array( $network_data ) && ! $this->query_vars['count'] ) {				$this->networks = $network_data;			} 			return $network_data;		} 		// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.		$_args = wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ); 		// Ignore the $fields, $update_network_cache arguments as the queried result will be the same regardless.		unset( $_args['fields'], $_args['update_network_cache'] ); 		$key          = md5( serialize( $_args ) );		$last_changed = wp_cache_get_last_changed( 'networks' ); 		$cache_key   = "get_network_ids:$key:$last_changed";		$cache_value = wp_cache_get( $cache_key, 'network-queries' ); 		if ( false === $cache_value ) {			$network_ids = $this->get_network_ids();			if ( $network_ids ) {				$this->set_found_networks();			} 			$cache_value = array(				'network_ids'    => $network_ids,				'found_networks' => $this->found_networks,			);			wp_cache_add( $cache_key, $cache_value, 'network-queries' );		} else {			$network_ids          = $cache_value['network_ids'];			$this->found_networks = $cache_value['found_networks'];

History

Introduced in 4.6.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.8.8 tag, from src/wp-includes/class-wp-network-query.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.