예제 #1
0
    /**
     * Display messages on the widgets page.
     *
     * @since 1.1.0
     */
    public static function widgets_page_messages()
    {
        $sidebars = simple_page_sidebars_get_names();
        // Display an error message if a default sidebar hasn't been selected on the Reading settings screen.
        if (!get_option('simple_page_sidebars_default_sidebar') && !empty($sidebars)) {
            echo '<div class="error"><p>' . self::get_empty_default_sidebar_error() . '</p></div>';
        }
        // Display any custom update messages.
        if (isset($_REQUEST['simple-page-sidebars-message']) && !empty($_REQUEST['simple-page-sidebars-message'])) {
            ?>
			<div id="message" class="updated">
				<p>
					<?php 
            $messages = array(1 => __('The sidebar you were editing is no longer assigned to any pages and has been removed. Any widgets it contained should be in an "Inactive Widgets" area below.', 'simple-page-sidebars'));
            $message_id = $_REQUEST['simple-page-sidebars-message'];
            if (isset($messages[$message_id])) {
                echo $messages[$message_id];
            }
            ?>
				</p>
			</div>
			<?php 
        }
    }
 /**
  * Add custom widget areas and automatically register page sidebars.
  *
  * @todo Try to insert a link into the description of custom sidebars so
  *       they can be edited. It'd be useful for when the Sidebar column is
  *       disabled, since there isn't any other way to access the Edit
  *       Sidebar screen.
  *
  * @since 0.2.0
  */
 public static function register_sidebars()
 {
     $widget_areas = array();
     // Add widget areas using this filter.
     $widget_areas = apply_filters('simple_page_sidebars_widget_areas', $widget_areas);
     // Verify id's exist, otherwise create them.
     // Help ensure widgets don't get mixed up if widget areas are added or removed.
     if (!empty($widget_areas) && is_array($widget_areas)) {
         foreach ($widget_areas as $key => $area) {
             if (is_numeric($key)) {
                 $widget_areas['widget-area-' . sanitize_key($area['name'])] = $area;
                 unset($widget_areas[$key]);
             }
         }
     }
     // Override the default widget properties.
     $widget_area_defaults = array('before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h4 class="title">', 'after_title' => '</h4>');
     $widget_area_defaults = apply_filters('simple_page_sidebars_widget_defaults', $widget_area_defaults);
     // If any custom sidebars have been assigned to pages, merge them with already defined widget areas.
     $sidebars = simple_page_sidebars_get_names();
     if (!empty($sidebars)) {
         foreach ($sidebars as $sidebar) {
             $page_sidebars['page-sidebar-' . sanitize_key($sidebar)] = array('name' => $sidebar, 'description' => '');
         }
         ksort($page_sidebars);
         $widget_areas = array_merge_recursive($widget_areas, $page_sidebars);
     }
     if (!empty($widget_areas) && is_array($widget_areas)) {
         // Register the widget areas.
         foreach ($widget_areas as $key => $area) {
             register_sidebar(array('id' => $key, 'name' => $area['name'], 'description' => $area['description'], 'before_widget' => isset($area['before_widget']) ? $area['before_widget'] : $widget_area_defaults['before_widget'], 'after_widget' => isset($area['after_widget']) ? $area['after_widget'] : $widget_area_defaults['after_widget'], 'before_title' => isset($area['before_title']) ? $area['before_title'] : $widget_area_defaults['before_title'], 'after_title' => isset($area['after_title']) ? $area['after_title'] : $widget_area_defaults['after_title']));
         }
     }
 }