Remove unnecessary checks before setting `$wp_settings_*` arrays. Adds unit test for setting a nonexistent variable to a multi-dimensional `array`.
Props scribu. Fixes #17884. git-svn-id: https://develop.svn.wordpress.org/trunk@25240 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
24bf60bb4f
commit
d10b9d32a0
|
@ -1072,13 +1072,6 @@ function add_settings_section($id, $title, $callback, $page) {
|
|||
$page = 'reading';
|
||||
}
|
||||
|
||||
if ( !isset($wp_settings_sections) )
|
||||
$wp_settings_sections = array();
|
||||
if ( !isset($wp_settings_sections[$page]) )
|
||||
$wp_settings_sections[$page] = array();
|
||||
if ( !isset($wp_settings_sections[$page][$id]) )
|
||||
$wp_settings_sections[$page][$id] = array();
|
||||
|
||||
$wp_settings_sections[$page][$id] = array('id' => $id, 'title' => $title, 'callback' => $callback);
|
||||
}
|
||||
|
||||
|
@ -1117,13 +1110,6 @@ function add_settings_field($id, $title, $callback, $page, $section = 'default',
|
|||
$page = 'reading';
|
||||
}
|
||||
|
||||
if ( !isset($wp_settings_fields) )
|
||||
$wp_settings_fields = array();
|
||||
if ( !isset($wp_settings_fields[$page]) )
|
||||
$wp_settings_fields[$page] = array();
|
||||
if ( !isset($wp_settings_fields[$page][$section]) )
|
||||
$wp_settings_fields[$page][$section] = array();
|
||||
|
||||
$wp_settings_fields[$page][$section][$id] = array('id' => $id, 'title' => $title, 'callback' => $callback, 'args' => $args);
|
||||
}
|
||||
|
||||
|
@ -1143,7 +1129,7 @@ function add_settings_field($id, $title, $callback, $page, $section = 'default',
|
|||
function do_settings_sections( $page ) {
|
||||
global $wp_settings_sections, $wp_settings_fields;
|
||||
|
||||
if ( ! isset( $wp_settings_sections ) || !isset( $wp_settings_sections[$page] ) )
|
||||
if ( ! isset( $wp_settings_sections[$page] ) )
|
||||
return;
|
||||
|
||||
foreach ( (array) $wp_settings_sections[$page] as $section ) {
|
||||
|
@ -1178,7 +1164,7 @@ function do_settings_sections( $page ) {
|
|||
function do_settings_fields($page, $section) {
|
||||
global $wp_settings_fields;
|
||||
|
||||
if ( !isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section]) )
|
||||
if ( ! isset( $wp_settings_fields[$page][$section] ) )
|
||||
return;
|
||||
|
||||
foreach ( (array) $wp_settings_fields[$page][$section] as $field ) {
|
||||
|
@ -1219,9 +1205,6 @@ function do_settings_fields($page, $section) {
|
|||
function add_settings_error( $setting, $code, $message, $type = 'error' ) {
|
||||
global $wp_settings_errors;
|
||||
|
||||
if ( !isset($wp_settings_errors) )
|
||||
$wp_settings_errors = array();
|
||||
|
||||
$new_error = array(
|
||||
'setting' => $setting,
|
||||
'code' => $code,
|
||||
|
|
|
@ -88,4 +88,15 @@ EOF;
|
|||
EOF;
|
||||
$this->assertEquals($expected, mask_input_value($in));
|
||||
}
|
||||
|
||||
function test_setting_nonexistent_arrays() {
|
||||
$page = 1;
|
||||
$field = 'settings';
|
||||
|
||||
error_reporting( -1 );
|
||||
|
||||
$empty_array[$page][$field] = 'foo';
|
||||
|
||||
unset( $empty_array[$page]['bar']['baz'] );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue