_register_widget_form_callback

The timeline below displays how wordpress function _register_widget_form_callback has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Registers the form callback for a widget.
 *
 * @since 2.8.0
 * @since 5.3.0 Formalized the existing and already documented `...$params` parameter
 *              by adding it to the function signature.
 *
 * @global array $wp_registered_widget_controls The registered widget controls.
 *
 * @param int|string $id            Widget ID.
 * @param string     $name          Name attribute for the widget.
 * @param callable   $form_callback Form callback.
 * @param array      $options       Optional. Widget control options. See wp_register_widget_control().
 *                                  Default empty array.
 * @param mixed      ...$params     Optional additional parameters to pass to the callback function when it's called.
 */
function _register_widget_form_callback($id, $name, $form_callback, $options = array(), ...$params)
{
    global $wp_registered_widget_controls;
    $id = strtolower($id);
    if (empty($form_callback)) {
        unset($wp_registered_widget_controls[$id]);
        return;
    }
    if (isset($wp_registered_widget_controls[$id]) && !did_action('widgets_init')) {
        return;
    }
    $defaults = array('width' => 250, 'height' => 200);
    $options = wp_parse_args($options, $defaults);
    $options['width'] = (int) $options['width'];
    $options['height'] = (int) $options['height'];
    $widget = array('name' => $name, 'id' => $id, 'callback' => $form_callback, 'params' => $params);
    $widget = array_merge($widget, $options);
    $wp_registered_widget_controls[$id] = $widget;
}

WordPress Version: 5.3

/**
 * Registers the form callback for a widget.
 *
 * @since 2.8.0
 * @since 5.3.0 Formalized the existing and already documented `...$params` parameter
 *              by adding it to the function signature.
 *
 * @global array $wp_registered_widget_controls
 *
 * @param int|string $id            Widget ID.
 * @param string     $name          Name attribute for the widget.
 * @param callable   $form_callback Form callback.
 * @param array      $options       Optional. Widget control options. See wp_register_widget_control().
 *                                  Default empty array.
 * @param mixed      ...$params     Optional additional parameters to pass to the callback function when it's called.
 */
function _register_widget_form_callback($id, $name, $form_callback, $options = array(), ...$params)
{
    global $wp_registered_widget_controls;
    $id = strtolower($id);
    if (empty($form_callback)) {
        unset($wp_registered_widget_controls[$id]);
        return;
    }
    if (isset($wp_registered_widget_controls[$id]) && !did_action('widgets_init')) {
        return;
    }
    $defaults = array('width' => 250, 'height' => 200);
    $options = wp_parse_args($options, $defaults);
    $options['width'] = (int) $options['width'];
    $options['height'] = (int) $options['height'];
    $widget = array('name' => $name, 'id' => $id, 'callback' => $form_callback, 'params' => $params);
    $widget = array_merge($widget, $options);
    $wp_registered_widget_controls[$id] = $widget;
}

WordPress Version: 4.6

/**
 * Registers the form callback for a widget.
 *
 * @since 2.8.0
 *
 * @global array $wp_registered_widget_controls
 *
 * @param int|string $id            Widget ID.
 * @param string     $name          Name attribute for the widget.
 * @param callable   $form_callback Form callback.
 * @param array      $options       Optional. Widget control options. See wp_register_widget_control().
 *                                  Default empty array.
 */
function _register_widget_form_callback($id, $name, $form_callback, $options = array())
{
    global $wp_registered_widget_controls;
    $id = strtolower($id);
    if (empty($form_callback)) {
        unset($wp_registered_widget_controls[$id]);
        return;
    }
    if (isset($wp_registered_widget_controls[$id]) && !did_action('widgets_init')) {
        return;
    }
    $defaults = array('width' => 250, 'height' => 200);
    $options = wp_parse_args($options, $defaults);
    $options['width'] = (int) $options['width'];
    $options['height'] = (int) $options['height'];
    $widget = array('name' => $name, 'id' => $id, 'callback' => $form_callback, 'params' => array_slice(func_get_args(), 4));
    $widget = array_merge($widget, $options);
    $wp_registered_widget_controls[$id] = $widget;
}

WordPress Version: 4.5

/**
 * Registers the form callback for a widget.
 *
 * @since 2.8.0
 *
 * @global array $wp_registered_widget_controls
 *
 * @param int|string $id            Widget ID.
 * @param string     $name          Name attribute for the widget.
 * @param callable   $form_callback Form callback.
 * @param array      $options       Optional. Widget control options. See {@see wp_register_widget_control()}.
 *                                  Default empty array.
 */
function _register_widget_form_callback($id, $name, $form_callback, $options = array())
{
    global $wp_registered_widget_controls;
    $id = strtolower($id);
    if (empty($form_callback)) {
        unset($wp_registered_widget_controls[$id]);
        return;
    }
    if (isset($wp_registered_widget_controls[$id]) && !did_action('widgets_init')) {
        return;
    }
    $defaults = array('width' => 250, 'height' => 200);
    $options = wp_parse_args($options, $defaults);
    $options['width'] = (int) $options['width'];
    $options['height'] = (int) $options['height'];
    $widget = array('name' => $name, 'id' => $id, 'callback' => $form_callback, 'params' => array_slice(func_get_args(), 4));
    $widget = array_merge($widget, $options);
    $wp_registered_widget_controls[$id] = $widget;
}

WordPress Version: 4.3

/**
 *
 * @global array $wp_registered_widget_controls
 *
 * @param int|string $id
 * @param string     $name
 * @param callable   $form_callback
 * @param array      $options
 */
function _register_widget_form_callback($id, $name, $form_callback, $options = array())
{
    global $wp_registered_widget_controls;
    $id = strtolower($id);
    if (empty($form_callback)) {
        unset($wp_registered_widget_controls[$id]);
        return;
    }
    if (isset($wp_registered_widget_controls[$id]) && !did_action('widgets_init')) {
        return;
    }
    $defaults = array('width' => 250, 'height' => 200);
    $options = wp_parse_args($options, $defaults);
    $options['width'] = (int) $options['width'];
    $options['height'] = (int) $options['height'];
    $widget = array('name' => $name, 'id' => $id, 'callback' => $form_callback, 'params' => array_slice(func_get_args(), 4));
    $widget = array_merge($widget, $options);
    $wp_registered_widget_controls[$id] = $widget;
}

WordPress Version: 4.1

/**
 *
 * @global array $wp_registered_widget_controls
 * @param int|string $id
 * @param string     $name
 * @param callable   $form_callback
 * @param array      $options
 * @return null
 */
function _register_widget_form_callback($id, $name, $form_callback, $options = array())
{
    global $wp_registered_widget_controls;
    $id = strtolower($id);
    if (empty($form_callback)) {
        unset($wp_registered_widget_controls[$id]);
        return;
    }
    if (isset($wp_registered_widget_controls[$id]) && !did_action('widgets_init')) {
        return;
    }
    $defaults = array('width' => 250, 'height' => 200);
    $options = wp_parse_args($options, $defaults);
    $options['width'] = (int) $options['width'];
    $options['height'] = (int) $options['height'];
    $widget = array('name' => $name, 'id' => $id, 'callback' => $form_callback, 'params' => array_slice(func_get_args(), 4));
    $widget = array_merge($widget, $options);
    $wp_registered_widget_controls[$id] = $widget;
}

WordPress Version: 3.7

function _register_widget_form_callback($id, $name, $form_callback, $options = array())
{
    global $wp_registered_widget_controls;
    $id = strtolower($id);
    if (empty($form_callback)) {
        unset($wp_registered_widget_controls[$id]);
        return;
    }
    if (isset($wp_registered_widget_controls[$id]) && !did_action('widgets_init')) {
        return;
    }
    $defaults = array('width' => 250, 'height' => 200);
    $options = wp_parse_args($options, $defaults);
    $options['width'] = (int) $options['width'];
    $options['height'] = (int) $options['height'];
    $widget = array('name' => $name, 'id' => $id, 'callback' => $form_callback, 'params' => array_slice(func_get_args(), 4));
    $widget = array_merge($widget, $options);
    $wp_registered_widget_controls[$id] = $widget;
}