123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <?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();
- }
- /**
- * acf_get_instance
- *
- * 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;
- }
- }
|