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 );
+ }
}
}