Make WordPress Core

Ticket #29790: 29790.patch

File 29790.patch, 1.5 KB (added by ruud@…, 10 years ago)

Patch to add widget area information to widget instance

  • src/wp-includes/widgets.php

     
    182182         *      Just finds the instance and calls widget().
    183183         *      Do NOT over-ride this function. */
    184184        public function display_callback( $args, $widget_args = 1 ) {
    185                 if ( is_numeric($widget_args) )
     185                if ( is_numeric( $widget_args ) ) {
    186186                        $widget_args = array( 'number' => $widget_args );
     187                }
    187188
    188189                $widget_args = wp_parse_args( $widget_args, array( 'number' => -1 ) );
    189190                $this->_set( $widget_args['number'] );
    190191                $instance = $this->get_settings();
    191 
     192
    192193                if ( array_key_exists( $this->number, $instance ) ) {
    193194                        $instance = $instance[$this->number];
    194195
     
    203204                         * @param WP_Widget $this     The current widget instance.
    204205                         * @param array     $args     An array of default widget arguments.
    205206                         */
     207
     208                        $instance['widget_area'] = $args;
    206209                        $instance = apply_filters( 'widget_display_callback', $instance, $this, $args );
    207210
    208211                        if ( false === $instance ) {
     
    335338                 * @param array     $instance The current widget instance's settings.
    336339                 * @param WP_Widget $this     The current widget instance.
    337340                 */
     341
     342                $sidebar_id = is_active_widget( true, $this->id );
     343                if ( $sidebar_id !== false ) {
     344                        $instance[ 'widget_area'][ 'id' ] = $sidebar_id;
     345                }
    338346                $instance = apply_filters( 'widget_form_callback', $instance, $this );
    339347
    340348                $return = null;