wp_get_admin_notice( string $message, array $args = array() ): string

Creates and returns the markup for an admin notice.

Parameters

$messagestringrequired
The message.
$argsarrayoptional
An array of arguments for the admin notice.
  • type string
    Optional. The type of admin notice.
    For example, 'error', 'success', 'warning', 'info'.
    Default empty string.
  • dismissible bool
    Optional. Whether the admin notice is dismissible. Default false.
  • id string
    Optional. The value of the admin notice’s ID attribute. Default empty string.
  • additional_classes string[]
    Optional. A string array of class names.
  • attributes string[]
    Optional. Additional attributes for the notice div.
  • paragraph_wrap bool
    Optional. Whether to wrap the message in paragraph tags. Default true.

Default:array()

Return

string The markup for an admin notice.

Source

function wp_get_admin_notice( $message, $args = array() ) {	$defaults = array(	'type' => '',	'dismissible' => false,	'id' => '',	'additional_classes' => array(),	'attributes' => array(),	'paragraph_wrap' => true,	);	$args = wp_parse_args( $args, $defaults );	/** * Filters the arguments for an admin notice. * * @since 6.4.0 * * @param array $args The arguments for the admin notice. * @param string $message The message for the admin notice. */	$args = apply_filters( 'wp_admin_notice_args', $args, $message );	$id = '';	$classes = 'notice';	$attributes = '';	if ( is_string( $args['id'] ) ) {	$trimmed_id = trim( $args['id'] );	if ( '' !== $trimmed_id ) {	$id = 'id="' . $trimmed_id . '" ';	}	}	if ( is_string( $args['type'] ) ) {	$type = trim( $args['type'] );	if ( str_contains( $type, ' ' ) ) {	_doing_it_wrong(	__FUNCTION__,	sprintf(	/* translators: %s: The "type" key. */	__( 'The %s key must be a string without spaces.' ),	'<code>type</code>'	),	'6.4.0'	);	}	if ( '' !== $type ) {	$classes .= ' notice-' . $type;	}	}	if ( true === $args['dismissible'] ) {	$classes .= ' is-dismissible';	}	if ( is_array( $args['additional_classes'] ) && ! empty( $args['additional_classes'] ) ) {	$classes .= ' ' . implode( ' ', $args['additional_classes'] );	}	if ( is_array( $args['attributes'] ) && ! empty( $args['attributes'] ) ) {	$attributes = '';	foreach ( $args['attributes'] as $attr => $val ) {	if ( is_bool( $val ) ) {	$attributes .= $val ? ' ' . $attr : '';	} elseif ( is_int( $attr ) ) {	$attributes .= ' ' . esc_attr( trim( $val ) );	} elseif ( $val ) {	$attributes .= ' ' . $attr . '="' . esc_attr( trim( $val ) ) . '"';	}	}	}	if ( false !== $args['paragraph_wrap'] ) {	$message = "<p>$message</p>";	}	$markup = sprintf( '<div %1$sclass="%2$s"%3$s>%4$s</div>', $id, $classes, $attributes, $message );	/** * Filters the markup for an admin notice. * * @since 6.4.0 * * @param string $markup The HTML markup for the admin notice. * @param string $message The message for the admin notice. * @param array $args The arguments for the admin notice. */	return apply_filters( 'wp_admin_notice_markup', $markup, $message, $args ); } 

Hooks

apply_filters( ‘wp_admin_notice_args’, array $args, string $message )

Filters the arguments for an admin notice.

apply_filters( ‘wp_admin_notice_markup’, string $markup, string $message, array $args )

Filters the markup for an admin notice.

Changelog

VersionDescription
6.4.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    This methods returns the markup for an admin notice.

    $message = wp_get_admin_notice(	__( 'The menu has been successfully deleted.', 'your-text-domain' ),	array(	'id' => 'message',	'additional_classes' => array( 'updated' ),	'dismissible' => true,	) ); // Print this notice in your admin page. echo wp_kses_post( $message );

    Note: The markup is not fully escaped and care should be taken to select the appropriate escaping function before output. So I am using here wp_kses_post() for escaping.

    Result:

    <div id="message" class="notice is-dismissible updated"><p>The menu has been successfully deleted.</p></div>

You must log in before being able to contribute a note or feedback.