diff --git a/wp-admin/includes/misc.php b/wp-admin/includes/misc.php index ef5050c874..c966a21fa6 100644 --- a/wp-admin/includes/misc.php +++ b/wp-admin/includes/misc.php @@ -584,4 +584,27 @@ foreach ( $_wp_admin_css_colors as $color => $color_info ): ?> + +/** + * Show error message only to single site admins or network admins + * + */ +function _show_errors_to_admins() { + global $_admin_error_messages; + + if ( !is_super_admin() ) + return; + + if ( !empty($_admin_error_messages) ) { + echo '
'; + + foreach ( (array) $_admin_error_messages as $message ) { + echo "

$message

\n"; + } + + echo "
\n"; + } +} +add_action( 'admin_notices', '_show_errors_to_admins' ); +add_action( 'network_admin_notices', '_show_errors_to_admins' ); + diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 5fea4ed4a7..f762203f71 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -3520,13 +3520,20 @@ function _deprecated_argument( $function, $version, $message = null ) { * @param string $version The version of WordPress where the message was added. */ function _doing_it_wrong( $function, $message, $version ) { + global $_admin_error_messages; do_action( 'doing_it_wrong_run', $function, $message, $version ); // Allow plugin to filter the output error trigger if ( WP_DEBUG && apply_filters( 'doing_it_wrong_trigger_error', true ) ) { $version = is_null( $version ) ? '' : sprintf( __( '(This message was added in version %s.)' ), $version ); - trigger_error( sprintf( __( '%1$s was called incorrectly. %2$s %3$s' ), $function, $message, $version ) ); + $error = sprintf( __( '%1$s was called incorrectly. %2$s %3$s. For more information please install a debugging plugin like Debug Bar or Log Deprecated Notices.' ), $function, $message, $version ); + + if ( WP_DEBUG_DISPLAY ) { + (array) $_admin_error_messages[] = $error; + } else { + trigger_error( $error ); + } } }