Example #1
0
/**
 * 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));
    }
}
Example #2
0
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');
}