From e5707af4297db9e0cf0d371b65560a8990dd4a6d Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Thu, 7 Jan 2016 06:05:07 +0000 Subject: [PATCH] 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. git-svn-id: https://develop.svn.wordpress.org/trunk@36216 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/class-wp-customize-manager.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/wp-includes/class-wp-customize-manager.php b/src/wp-includes/class-wp-customize-manager.php index 2653247aed..e556f5ee27 100644 --- a/src/wp-includes/class-wp-customize-manager.php +++ b/src/wp-includes/class-wp-customize-manager.php @@ -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 customize_loaded_components filter instead. See %2$s.' ), $id, $url ), + '4.5' + ); + } unset( $this->panels[ $id ] ); }