WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
класс не описан

acf_loop{} ACF 1.0

Хуков нет.

Возвращает

null. Ничего.

Использование

$acf_loop = new acf_loop();
// use class methods

Методы

  1. __construct()
  2. add_loop( $loop = array() )
  3. get_i( $i = 0 )
  4. get_loop( $i = 'active', $key = null )
  5. is_empty()
  6. is_loop( $i = 0 )
  7. remove_loop( $i = 'active' )
  8. update_loop( $i = 'active', $key = null, $value = null )

Код acf_loop{} ACF 5.9.1

<?php
class acf_loop {
	
	
	/*
	*  __construct
	*
	*  This function will setup the class functionality
	*
	*  @type	function
	*  @date	5/03/2014
	*  @since	5.0.0
	*
	*  @param	n/a
	*  @return	n/a
	*/
	
	function __construct() {
		
		// vars
		$this->loops = array();
		
	}
	
	
	/*
	*  is_empty
	*
	*  This function will return true if no loops exist
	*
	*  @type	function
	*  @date	3/03/2016
	*  @since	5.3.2
	*
	*  @param	n/a
	*  @return	(boolean)
	*/
	
	function is_empty() {
		
		return empty( $this->loops );
		
	}
	
	
	/*
	*  is_loop
	*
	*  This function will return true if a loop exists for the given array index
	*
	*  @type	function
	*  @date	3/03/2016
	*  @since	5.3.2
	*
	*  @param	$i (int)
	*  @return	(boolean)
	*/
	
	function is_loop( $i = 0 ) {
		
		return isset( $this->loops[ $i ] );
		
	}
	
	
	/*
	*  get_i
	*
	*  This function will return a valid array index for the given $i
	*
	*  @type	function
	*  @date	3/03/2016
	*  @since	5.3.2
	*
	*  @param	$i (mixed)
	*  @return	(int)
	*/
	
	function get_i( $i = 0 ) {
		
		// 'active'
		if( $i === 'active' ) $i = -1;
		
		
		// 'previous'
		if( $i === 'previous' ) $i = -2;
		
		
		// allow negative to look at end of loops
		if( $i < 0 ) {
			
			$i = count($this->loops) + $i;
			
		}
		
		
		// return
		return $i;
		
	}
	
	
	/*
	*  add_loop
	*
	*  This function will add a new loop
	*
	*  @type	function
	*  @date	3/03/2016
	*  @since	5.3.2
	*
	*  @param	$loop (array)
	*  @return	n/a
	*/
	
	function add_loop( $loop = array() ) {
		
		// defaults
		$loop = wp_parse_args( $loop, array(
			'selector'	=> '',
			'name'		=> '',
			'value'		=> false,
			'field'		=> false,
			'i'			=> -1,
			'post_id'	=> 0,
			'key'		=> ''
		));
		
		
		// ensure array
		$loop['value'] = acf_get_array( $loop['value'] );
		
		
		// Re-index values if this loop starts from index 0.
		// This allows ajax previews to work ($_POST data contains random unique array keys)
		if( $loop['i'] == -1 ) {
			
			$loop['value'] = array_values($loop['value']);
			
		}
		
		
		// append
		$this->loops[] = $loop;
		
		
		// return
		return $loop;
		
	}
	
	
	/*
	*  update_loop
	*
	*  This function will update a loop's setting
	*
	*  @type	function
	*  @date	3/03/2016
	*  @since	5.3.2
	*
	*  @param	$i (mixed)
	*  @param	$key (string) the loop setting name
	*  @param	$value (mixed) the loop setting value
	*  @return	(boolean) true on success
	*/
	
	function update_loop( $i = 'active', $key = null, $value = null ) {
		
		// i
		$i = $this->get_i( $i );
		
		
		// bail early if no set
		if( !$this->is_loop($i) ) return false;
		
		
		// set
		$this->loops[ $i ][ $key ] = $value;
		
		
		// return
		return true;
		
	}
	
	
	/*
	*  get_loop
	*
	*  This function will return a loop, or loop's setting for a given index & key
	*
	*  @type	function
	*  @date	3/03/2016
	*  @since	5.3.2
	*
	*  @param	$i (mixed)
	*  @param	$key (string) the loop setting name
	*  @return	(mixed) false on failure
	*/
	
	function get_loop( $i = 'active', $key = null ) {
		
		// i
		$i = $this->get_i( $i );
		
		
		// bail early if no set
		if( !$this->is_loop($i) ) return false;
		
		
		// check for key
		if( $key !== null ) {
			
			return $this->loops[ $i ][ $key ];
				
		}
		
		
		// return
		return $this->loops[ $i ];
		
	}
	
	
	/*
	*  remove_loop
	*
	*  This function will remove a loop
	*
	*  @type	function
	*  @date	3/03/2016
	*  @since	5.3.2
	*
	*  @param	$i (mixed)
	*  @return	(boolean) true on success
	*/
	
	function remove_loop( $i = 'active' ) {
		
		// i
		$i = $this->get_i( $i );
		
		
		// bail early if no set
		if( !$this->is_loop($i) ) return false;
		
		
		// remove
		unset($this->loops[ $i ]);
		
		
		// reset keys
		$this->loops = array_values( $this->loops );
		
		// PHP 7.2 no longer resets array keys for empty value
		if( $this->is_empty() ) {
			$this->loops = array();
		}
	}
	
}