The register_widget_control() WordPress PHP function registers a widget control callback for customizing options.
Usage
register_widget_control($name, $control_callback, $width, $height, $params);
Parameters
$name (int|string)
– Required. Sidebar ID.$control_callback (callable)
– Required. Widget control callback to display and process the form.$width (int)
– Optional. Widget width. Default: ”.$height (int)
– Optional. Widget height. Default: ”.$params (mixed)
– Required. Widget parameters.
More information
See WordPress Developer Resources: register_widget_control()
Examples
Register a simple text widget control
This example registers a simple text widget control with a form to update the widget title.
function my_text_widget_control($widget_args) { // Retrieve the widget options $options = get_option('my_text_widget_options'); // Check if the form was submitted if (isset($_POST['my-text-widget-submit'])) { // Update the widget title $options['title'] = strip_tags(stripslashes($_POST['my-text-widget-title'])); update_option('my_text_widget_options', $options); } // Display the widget control form echo '<p><label for="my-text-widget-title">Title: <input type="text" id="my-text-widget-title" name="my-text-widget-title" value="' . htmlspecialchars($options['title'], ENT_QUOTES) . '" /></label></p>'; echo '<input type="hidden" name="my-text-widget-submit" id="my-text-widget-submit" value="1" />'; } register_widget_control('My Text Widget', 'my_text_widget_control');
Register a custom image widget control
This example registers a custom image widget control with a form to update the image URL and caption.
function my_image_widget_control($widget_args) { // Retrieve the widget options $options = get_option('my_image_widget_options'); // Check if the form was submitted if (isset($_POST['my-image-widget-submit'])) { // Update the image URL and caption $options['url'] = esc_url_raw($_POST['my-image-widget-url']); $options['caption'] = sanitize_text_field($_POST['my-image-widget-caption']); update_option('my_image_widget_options', $options); } // Display the widget control form echo '<p><label for="my-image-widget-url">Image URL: <input type="url" id="my-image-widget-url" name="my-image-widget-url" value="' . esc_attr($options['url']) . '" /></label></p>'; echo '<p><label for="my-image-widget-caption">Caption: <input type="text" id="my-image-widget-caption" name="my-image-widget-caption" value="' . esc_attr($options['caption']) . '" /></label></p>'; echo '<input type="hidden" name="my-image-widget-submit" id="my-image-widget-submit" value="1" />'; } register_widget_control('My Image Widget', 'my_image_widget_control', 300, 200);