Make WordPress Core

Ticket #35023: get_field_name_3.patch

File get_field_name_3.patch, 1.4 KB (added by pbearne, 9 years ago)

3rd patch

  • src/wp-includes/class-wp-widget.php

     
    183183         * @param string $field_name Field name
    184184         * @return string Name attribute for $field_name
    185185         */
    186         public function get_field_name($field_name) {
    187                 if ( false === $pos = strpos( $field_name, '[' ) ) {
     186        public function get_field_name( $field_name ) {
     187                if ( ! preg_match( '/]$/', $field_name ) ) {
    188188                        return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
    189189                } else {
     190                        if ( false === $pos = strpos( $field_name, '[' ) ) {
     191                                return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name;
     192                        }
    190193                        return 'widget-' . $this->id_base . '[' . $this->number . '][' . substr_replace( $field_name, '][', $pos, strlen( '[' ) );
    191194                }
    192195        }
  • tests/phpunit/tests/widgets.php

     
    351351                                'widget-foo[2][posttypes][4][][6]',
    352352                                'posttypes[4][][6]',
    353353                        ),
     354                        array(
     355                                'widget-foo[2][posttypes][name]',
     356                                'posttypes][name',
     357                        ),
     358                        array(
     359                                'widget-foo[2][][title]',
     360                                '[title]',
     361                        ),
     362                        array(
     363                                'widget-foo[2][title]',
     364                                'title]',
     365                        ),
    354366                );
    355367        }
    356368