/** * Register categories widget on startup. * * @since 2.3.0 */ function wp_widget_categories_register() { if (!($options = get_option('widget_categories'))) { $options = array(); } if (isset($options['title'])) { $options = wp_widget_categories_upgrade(); } $widget_ops = array('classname' => 'widget_categories', 'description' => __("A list or dropdown of categories")); $name = __('Categories'); $id = false; foreach ((array) array_keys($options) as $o) { // Old widgets can have null values for some reason if (!isset($options[$o]['title'])) { continue; } $id = "categories-{$o}"; wp_register_sidebar_widget($id, $name, 'wp_widget_categories', $widget_ops, array('number' => $o)); wp_register_widget_control($id, $name, 'wp_widget_categories_control', array('id_base' => 'categories'), array('number' => $o)); } // If there are none, we register the widget's existance with a generic template if (!$id) { wp_register_sidebar_widget('categories-1', $name, 'wp_widget_categories', $widget_ops, array('number' => -1)); wp_register_widget_control('categories-1', $name, 'wp_widget_categories_control', array('id_base' => 'categories'), array('number' => -1)); } }
function wp_widget_categories_register() { $options = get_option('widget_categories'); if (!isset($options['number'])) { $options = wp_widget_categories_upgrade(); } $number = (int) $options['number']; if ($number > 9) { $number = 9; } elseif ($number < 1) { $number = 1; } $dims = array('width' => 350, 'height' => 170); $class = array('classname' => 'widget_catgories'); for ($i = 1; $i <= 9; $i++) { $name = sprintf(__('Categories %d'), $i); $id = 'categories-' . $i; $widget_callback = $i <= $number ? 'wp_widget_categories' : ''; $control_callback = $i <= $number ? 'wp_widget_categories_control' : ''; wp_register_sidebar_widget($id, $name, $widget_callback, $class, $i); wp_register_widget_control($id, $name, $control_callback, $dims, $i); } add_action('sidebar_admin_setup', 'wp_widget_categories_setup'); add_action('sidebar_admin_page', 'wp_widget_categories_page'); }