WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта с помощью браузерных PUSH уведомлений
класс не описан

acf_options_page{} ACF 1.0

Хуки из класса
Возвращает

null. Ничего.

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

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

Методы

  1. __construct()
  2. add_page( $page )
  3. add_sub_page( $page )
  4. get_page( $slug )
  5. get_pages()
  6. update_page( $slug = '', $data = array() )
  7. validate_page( $page )

Код acf_options_page{} ACF 5.9.1

<?php
class acf_options_page {
	
	/** @var array Contains an array of optiions page settings */
	var $pages = array();
	
	
	/*
	*  __construct
	*
	*  Initialize filters, action, variables and includes
	*
	*  @type	function
	*  @date	23/06/12
	*  @since	5.0.0
	*
	*  @param	n/a
	*  @return	n/a
	*/
	
	function __construct() {
		
		/* do nothing */
		
	}
	
	
	/*
	*  validate_page
	*
	*  description
	*
	*  @type	function
	*  @date	28/2/17
	*  @since	5.5.8
	*
	*  @param	$post_id (int)
	*  @return	$post_id (int)
	*/
	
	function validate_page( $page ) {
		
		// default
		if( empty($page) ) {
			
			$page_title =  __('Options', 'acf');
			$page = array(
				'page_title'	=> $page_title,
				'menu_title'	=> $page_title,
				'menu_slug' 	=> 'acf-options'
			);
		
		// string		
		} elseif( is_string($page) ) {
		
			$page_title = $page;
			$page = array(
				'page_title'	=> $page_title,
				'menu_title'	=> $page_title
			);
		}
		
		
		// defaults
		$page = wp_parse_args($page, array(
			'page_title' 		=> '',
			'menu_title'		=> '',
			'menu_slug' 		=> '',
			'capability'		=> 'edit_posts',
			'parent_slug'		=> '',
			'position'			=> false,
			'icon_url'			=> false,
			'redirect'			=> true,
			'post_id'			=> 'options',
			'autoload'			=> false,
			'update_button'		=> __('Update', 'acf'),
			'updated_message'	=> __("Options Updated", 'acf'),
		));
		
		
		// ACF4 compatibility
		$migrate = array(
			'title' 	=> 'page_title',
			'menu'		=> 'menu_title',
			'slug'		=> 'menu_slug',
			'parent'	=> 'parent_slug'
		);
		
		foreach( $migrate as $old => $new ) {
			if( !empty($page[$old]) ) {
				$page[ $new ] = $page[ $old ];
			}
		}
		
		
		// page_title (allows user to define page with just page_title or title)
		if( empty($page['menu_title']) ) {
			$page['menu_title'] = $page['page_title'];
		}
		
		
		// menu_slug
		if( empty($page['menu_slug']) ) {
			$page['menu_slug'] = 'acf-options-' . sanitize_title( $page['menu_title'] );
		}
		
		
		// filter
		$page = apply_filters('acf/validate_options_page', $page);
		
		
		// return
		return $page;
		
	}
	
	
	/*
	*  add_page
	*
	*  This function will store an options page settings
	*
	*  @type	function
	*  @date	9/6/17
	*  @since	5.6.0
	*
	*  @param	$page (array)
	*  @return	n/a
	*/
	
	function add_page( $page ) {
		
		// validate
		$page = $this->validate_page( $page );
		$slug = $page['menu_slug'];
		
		
		// bail ealry if already exists
		if( isset($this->pages[$slug]) ) return false;
		
		
		// append
		$this->pages[$slug] = $page;
		
		
		// return
		return $page;
		
	}
	
	
	/*
	*  add_sub_page
	*
	*  description
	*
	*  @type	function
	*  @date	9/6/17
	*  @since	5.6.0
	*
	*  @param	$post_id (int)
	*  @return	$post_id (int)
	*/
	
	function add_sub_page( $page ) {
		
		// validate
		$page = $this->validate_page( $page );
		
		
		// default parent
		if( !$page['parent_slug'] ) {
			$page['parent_slug'] = 'acf-options';
		}
		
		
		// create default parent if not yet exists
		if( $page['parent_slug'] == 'acf-options' && !$this->get_page('acf-options') ) {
			
			$this->add_page( '' );
			
		}
			
		
		// return
		return $this->add_page( $page );
		
	}
	
	
	/*
	*  update_page
	*
	*  This function will update an options page settings
	*
	*  @type	function
	*  @date	9/6/17
	*  @since	5.6.0
	*
	*  @param	$slug (string)
	*  @param	$data (array)
	*  @return	(array)
	*/
	
	function update_page( $slug = '', $data = array() ) {
		
		// vars
		$page = $this->get_page( $slug );
		
		
		// bail early if no page
		if( !$page ) return false;
		
		
		// loop
		$page = array_merge( $page, $data );
		
		
		// set
		$this->pages[ $slug ] = $page;
		
		
		// return
		return $page;
		
	}
	
	
	/*
	*  get_page
	*
	*  This function will return an options page settings
	*
	*  @type	function
	*  @date	6/07/2016
	*  @since	5.4.0
	*
	*  @param	$slug (string)
	*  @return	(mixed)
	*/
	
	function get_page( $slug ) {
		
		return isset( $this->pages[$slug] ) ? $this->pages[$slug] : null;
		
	}
	
	
	/*
	*  get_pages
	*
	*  This function will return all options page settings
	*
	*  @type	function
	*  @date	6/07/2016
	*  @since	5.4.0
	*
	*  @param	$slug (string)
	*  @return	(mixed)
	*/
	
	function get_pages() {
		
		return $this->pages;
		
	}
    
}