Customizer: Call `_doing_it_wrong()` if `widgets` or `nav_menus` are manually removed via `WP_Customize_Manager::remove_panel()`.

Advise that the `customize_loaded_components` filter should be used instead.

Props voldemortensen.
See #33552.
Fixes #35242.

Built from https://develop.svn.wordpress.org/trunk@36216


git-svn-id: http://core.svn.wordpress.org/trunk@36183 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Weston Ruter 2016-01-07 06:06:28 +00:00
parent 74f83e1016
commit 668818e93d
2 changed files with 13 additions and 1 deletions

View File

@ -1198,6 +1198,18 @@ final class WP_Customize_Manager {
* @param string $id Panel ID to remove.
*/
public function remove_panel( $id ) {
$core_panels = array(
'widgets',
'nav_menus',
);
if ( in_array( $id, $core_panels, true ) ) {
$url = 'https://core.trac.wordpress.org/ticket/33552#comment:12';
_doing_it_wrong(
__METHOD__,
sprintf( __( 'Removing %1$s manually will cause PHP warnings. Use the <code>customize_loaded_components</code> filter instead. See <a href="%2$s">%2$s</a>.' ), $id, $url ),
'4.5'
);
}
unset( $this->panels[ $id ] );
}

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.5-alpha-36215';
$wp_version = '4.5-alpha-36216';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.