wp_get_admin_notice() │ WP 6.4.0
Creates and returns the markup for an admin notice.
1 time — 0.000071 sec (very fast) | 50000 times — 0.10 sec (speed of light)
Return
String
. The markup for an admin notice.
Usage
wp_get_admin_notice( $message, $args );
- $message(string) (required)
- The message.
- $args(array)
An array of arguments for the admin notice.
Default: empty array
-
type(string)
Optional. The type of admin notice. For example, 'error', 'success', 'warning', 'info'.
Default: empty string
-
dismissible(true|false)
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.
Default: empty array
-
attributes(string[])
Optional. Additional attributes for the notice div.
Default: empty array
- paragraph_wrap(true|false)
Optional. Whether to wrap the message in paragraph tags.
Default: true
Examples
#1 Collect the tags and display them
$messages = [];
if( 'some condition' ){
$messages[] = wp_get_admin_notice( 'Note 1', [ 'type' => 'error' ] );
}
if( 'some condition' ){
$messages[] = wp_get_admin_notice( 'Note 2', [ 'type' => 'error' ] );
}
// some code
echo implode( "\n", $messages );
Changelog
wp_get_admin_notice() wp get admin notice code
WP 6.6.2
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 );
}
Related Functions