Make WordPress Core


Ignore:
Timestamp:
10/13/2015 01:48:41 AM (9 years ago)
Author:
wonderboymusic
Message:

Widgets: When using the_widget(), the $before_widget argument only receives the widget class if using the default sidebar arguments. Run sprintf after parsing the args to fix this.

Adds unit test.

Props coffee2code.
Fixes #19450.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/widget-functions.php

    r35104 r35106  
    950950    }
    951951
    952     $before_widget = sprintf('<div class="widget %s">', $widget_obj->widget_options['classname'] );
    953     $default_args = array( 'before_widget' => $before_widget, 'after_widget' => "</div>", 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' );
    954 
    955     $args = wp_parse_args($args, $default_args);
     952    $default_args = array(
     953        'before_widget' => '<div class="widget %s">',
     954        'after_widget'  => "</div>",
     955        'before_title'  => '<h2 class="widgettitle">',
     956        'after_title'   => '</h2>',
     957    );
     958    $args = wp_parse_args( $args, $default_args );
     959    $args['before_widget'] = sprintf( $args['before_widget'], $widget_obj->widget_options['classname'] );
     960
    956961    $instance = wp_parse_args($instance);
    957962
Note: See TracChangeset for help on using the changeset viewer.