0

I have a check box showing on all widgets, a simple option to double the size of the widget on the frontent.

function doublesize_option( $widget, $return, $instance ) {
    $large = isset( $instance['large'] ) ? $instance['large'] : '';
    ?>
        <p>
            <input class="checkbox" type="checkbox" id="<?php echo $widget->get_field_id('large'); ?>" name="<?php echo $widget->get_field_name('large'); ?>" <?php checked( true , $large ); ?> />
            <label for="<?php echo $widget->get_field_id('large'); ?>">
                <?php _e( 'Double size', 'double_textdomain' ); ?>
            </label>
        </p>
    <?php} add_filter('in_widget_form', 'doublesize_option', 10, 3 ); function doublesize_save( $instance, $new_instance ) {
if (!empty( $new_instance['large'] ) ) {
    $new_instance['large'] = 1;
}
return $new_instance; } add_filter( 'widget_update_callback', 'doublesize_save', 10, 2 );

What I can't seem to be able to do is insert a class on the widget frontend display something like

  • When you say "widget frontend" do you mean in the widget editor in the admin area or the public facing website? – jdm2112 Sep 9 at 12:56
0

I eventually use the following to be able to do it:

add_filter('dynamic_sidebar_params', function($params) {
global $wp_registered_widgets;
$this_widget_id = $params[0]['widget_id'];
$this_widget = $wp_registered_widgets[$this_widget_id];
$widget_object = $this_widget['callback'][0];
$all_settings = get_option($widget_object->option_name);
$saved_settings = $all_settings[$params[1]['number']];
if ($saved_settings['myclass']) {
    $classe_to_add = 'myclass ';
    $classe_to_add = 'class=" '.$classe_to_add;
    $params[0]['before_widget'] = str_replace('class="',$classe_to_add,$params[0]['before_widget']);
}
return $params;

});

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.