web/wp-includes/widgets.php
branchwordpress
changeset 132 4d4862461b8d
parent 109 03b0d1493584
equal deleted inserted replaced
131:a4642baaf829 132:4d4862461b8d
   124 
   124 
   125 	// Private Functions. Don't worry about these.
   125 	// Private Functions. Don't worry about these.
   126 
   126 
   127 	function _register() {
   127 	function _register() {
   128 		$settings = $this->get_settings();
   128 		$settings = $this->get_settings();
   129 
   129 		$empty = true;
   130 		if ( empty($settings) ) {
   130 
       
   131 		if ( is_array($settings) ) {
       
   132 			foreach ( array_keys($settings) as $number ) {
       
   133 				if ( is_numeric($number) ) {
       
   134 					$this->_set($number);
       
   135 					$this->_register_one($number);
       
   136 					$empty = false;
       
   137 				}
       
   138 			}
       
   139 		}
       
   140 
       
   141 		if ( $empty ) {
   131 			// If there are none, we register the widget's existance with a
   142 			// If there are none, we register the widget's existance with a
   132 			// generic template
   143 			// generic template
   133 			$this->_set(1);
   144 			$this->_set(1);
   134 			$this->_register_one();
   145 			$this->_register_one();
   135 		} elseif ( is_array($settings) ) {
       
   136 			foreach ( array_keys($settings) as $number ) {
       
   137 				if ( is_numeric($number) ) {
       
   138 					$this->_set($number);
       
   139 					$this->_register_one($number);
       
   140 				}
       
   141 			}
       
   142 		}
   146 		}
   143 	}
   147 	}
   144 
   148 
   145 	function _set($number) {
   149 	function _set($number) {
   146 		$this->number = $number;
   150 		$this->number = $number;
   542 	$i = count($wp_registered_sidebars) + 1;
   546 	$i = count($wp_registered_sidebars) + 1;
   543 
   547 
   544 	$defaults = array(
   548 	$defaults = array(
   545 		'name' => sprintf(__('Sidebar %d'), $i ),
   549 		'name' => sprintf(__('Sidebar %d'), $i ),
   546 		'id' => "sidebar-$i",
   550 		'id' => "sidebar-$i",
       
   551 		'description' => '',
   547 		'before_widget' => '<li id="%1$s" class="widget %2$s">',
   552 		'before_widget' => '<li id="%1$s" class="widget %2$s">',
   548 		'after_widget' => "</li>\n",
   553 		'after_widget' => "</li>\n",
   549 		'before_title' => '<h2 class="widgettitle">',
   554 		'before_title' => '<h2 class="widgettitle">',
   550 		'after_title' => "</h2>\n",
   555 		'after_title' => "</h2>\n",
   551 	);
   556 	);
   649 	if ( isset($wp_registered_widgets[$id]['description']) )
   654 	if ( isset($wp_registered_widgets[$id]['description']) )
   650 		return esc_html( $wp_registered_widgets[$id]['description'] );
   655 		return esc_html( $wp_registered_widgets[$id]['description'] );
   651 }
   656 }
   652 
   657 
   653 /**
   658 /**
       
   659  * Retrieve description for a sidebar.
       
   660  *
       
   661  * When registering sidebars a 'description' parameter can be included that
       
   662  * describes the sidebar for display on the widget administration panel.
       
   663  *
       
   664  * @since 2.9.0
       
   665  *
       
   666  * @param int|string $id sidebar ID.
       
   667  * @return string Sidebar description, if available. Null on failure to retrieve description.
       
   668  */
       
   669 function wp_sidebar_description( $id ) {
       
   670 	if ( !is_scalar($id) )
       
   671 		return;
       
   672 
       
   673 	global $wp_registered_sidebars;
       
   674 
       
   675 	if ( isset($wp_registered_sidebars[$id]['description']) )
       
   676 		return esc_html( $wp_registered_sidebars[$id]['description'] );
       
   677 }
       
   678 
       
   679 
       
   680 /**
   654  * Remove widget from sidebar.
   681  * Remove widget from sidebar.
   655  *
   682  *
   656  * @since 2.2.0
   683  * @since 2.2.0
   657  *
   684  *
   658  * @param int|string $id Widget ID.
   685  * @param int|string $id Widget ID.
   968 		$sidebars_widgets = $_wp_sidebars_widgets;
   995 		$sidebars_widgets = $_wp_sidebars_widgets;
   969 	} else {
   996 	} else {
   970 		$sidebars_widgets = get_option('sidebars_widgets', array());
   997 		$sidebars_widgets = get_option('sidebars_widgets', array());
   971 		$_sidebars_widgets = array();
   998 		$_sidebars_widgets = array();
   972 
   999 
   973 		if ( isset($sidebars_widgets['wp_inactive_widgets']) )
  1000 		if ( isset($sidebars_widgets['wp_inactive_widgets']) || empty($sidebars_widgets) )
   974 			$sidebars_widgets['array_version'] = 3;
  1001 			$sidebars_widgets['array_version'] = 3;
   975 		elseif ( !isset($sidebars_widgets['array_version']) )
  1002 		elseif ( !isset($sidebars_widgets['array_version']) )
   976 			$sidebars_widgets['array_version'] = 1;
  1003 			$sidebars_widgets['array_version'] = 1;
   977 
  1004 
   978 		switch ( $sidebars_widgets['array_version'] ) {
  1005 		switch ( $sidebars_widgets['array_version'] ) {