157 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| // Globals.
 | |
| global $acf_stores, $acf_instances;
 | |
| 
 | |
| // Initialize plaeholders.
 | |
| $acf_stores    = array();
 | |
| $acf_instances = array();
 | |
| 
 | |
| /**
 | |
|  * acf_new_instance
 | |
|  *
 | |
|  * Creates a new instance of the given class and stores it in the instances data store.
 | |
|  *
 | |
|  * @date    9/1/19
 | |
|  * @since   5.7.10
 | |
|  *
 | |
|  * @param   string $class The class name.
 | |
|  * @return  object The instance.
 | |
|  */
 | |
| function acf_new_instance( $class = '' ) {
 | |
| 	global $acf_instances;
 | |
| 	return $acf_instances[ $class ] = new $class();
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Returns an instance for the given class.
 | |
|  *
 | |
|  * @date  9/1/19
 | |
|  * @since 5.7.10
 | |
|  *
 | |
|  * @param string $class The class name.
 | |
|  * @return object The instance.
 | |
|  */
 | |
| function acf_get_instance( $class = '' ) {
 | |
| 	global $acf_instances;
 | |
| 	if ( ! isset( $acf_instances[ $class ] ) ) {
 | |
| 		$acf_instances[ $class ] = new $class();
 | |
| 	}
 | |
| 	return $acf_instances[ $class ];
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * acf_register_store
 | |
|  *
 | |
|  * Registers a data store.
 | |
|  *
 | |
|  * @date    9/1/19
 | |
|  * @since   5.7.10
 | |
|  *
 | |
|  * @param   string $name The store name.
 | |
|  * @param   array  $data Array of data to start the store with.
 | |
|  * @return  ACF_Data
 | |
|  */
 | |
| function acf_register_store( $name = '', $data = false ) {
 | |
| 
 | |
| 	// Create store.
 | |
| 	$store = new ACF_Data( $data );
 | |
| 
 | |
| 	// Register store.
 | |
| 	global $acf_stores;
 | |
| 	$acf_stores[ $name ] = $store;
 | |
| 
 | |
| 	// Return store.
 | |
| 	return $store;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * acf_get_store
 | |
|  *
 | |
|  * Returns a data store.
 | |
|  *
 | |
|  * @date    9/1/19
 | |
|  * @since   5.7.10
 | |
|  *
 | |
|  * @param   string $name The store name.
 | |
|  * @return  ACF_Data
 | |
|  */
 | |
| function acf_get_store( $name = '' ) {
 | |
| 	global $acf_stores;
 | |
| 	return isset( $acf_stores[ $name ] ) ? $acf_stores[ $name ] : false;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * acf_switch_stores
 | |
|  *
 | |
|  * Triggered when switching between sites on a multisite installation.
 | |
|  *
 | |
|  * @date    13/2/19
 | |
|  * @since   5.7.11
 | |
|  *
 | |
|  * @param   int                           $site_id New blog ID.
 | |
|  * @param   int prev_blog_id Prev blog ID.
 | |
|  * @return  void
 | |
|  */
 | |
| function acf_switch_stores( $site_id, $prev_site_id ) {
 | |
| 
 | |
| 	// Loop over stores and call switch_site().
 | |
| 	global $acf_stores;
 | |
| 	foreach ( $acf_stores as $store ) {
 | |
| 		$store->switch_site( $site_id, $prev_site_id );
 | |
| 	}
 | |
| }
 | |
| add_action( 'switch_blog', 'acf_switch_stores', 10, 2 );
 | |
| 
 | |
| /**
 | |
|  * acf_get_path
 | |
|  *
 | |
|  * Returns the plugin path to a specified file.
 | |
|  *
 | |
|  * @date    28/9/13
 | |
|  * @since   5.0.0
 | |
|  *
 | |
|  * @param   string $filename The specified file.
 | |
|  * @return  string
 | |
|  */
 | |
| function acf_get_path( $filename = '' ) {
 | |
| 	return ACF_PATH . ltrim( $filename, '/' );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * acf_get_url
 | |
|  *
 | |
|  * Returns the plugin url to a specified file.
 | |
|  * This function also defines the ACF_URL constant.
 | |
|  *
 | |
|  * @date    12/12/17
 | |
|  * @since   5.6.8
 | |
|  *
 | |
|  * @param   string $filename The specified file.
 | |
|  * @return  string
 | |
|  */
 | |
| function acf_get_url( $filename = '' ) {
 | |
| 	if ( ! defined( 'ACF_URL' ) ) {
 | |
| 		define( 'ACF_URL', acf_get_setting( 'url' ) );
 | |
| 	}
 | |
| 	return ACF_URL . ltrim( $filename, '/' );
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * acf_include
 | |
|  *
 | |
|  * Includes a file within the ACF plugin.
 | |
|  *
 | |
|  * @date    10/3/14
 | |
|  * @since   5.0.0
 | |
|  *
 | |
|  * @param   string $filename The specified file.
 | |
|  * @return  void
 | |
|  */
 | |
| function acf_include( $filename = '' ) {
 | |
| 	$file_path = acf_get_path( $filename );
 | |
| 	if ( file_exists( $file_path ) ) {
 | |
| 		include_once $file_path;
 | |
| 	}
 | |
| }
 |