Hàm wp_admin_notice()
được giới thiệu trong WordPress 6.4.0, cung cấp một cách tiêu chuẩn và dễ dàng hơn để hiển thị các thông báo quản trị (admin notices) cho người dùng trong khu vực quản trị WordPress.
Thay vì phải tự tạo mã HTML phức tạp, bạn có thể sử dụng hàm này để tạo các thông báo có kiểu dáng nhất quán và khả năng loại bỏ (dismissible).
Cú pháp:
wp_admin_notice( string $message, array $args = array() )
Tham số:
$message
(string) (Bắt buộc): Nội dung của thông báo bạn muốn hiển thị.$args
(array) (Tùy chọn): Một mảng các đối số để tùy chỉnh thông báo. Các khóa (keys) phổ biến bao gồm:type
(string): Loại thông báo. Các giá trị được hỗ trợ là'success'
,'error'
,'warning'
,'info'
. Nếu không được chỉ định, nó sẽ là một thông báo mặc định.dismissible
(bool): Xác định xem thông báo có thể bị người dùng loại bỏ hay không. Giá trị mặc định làfalse
.id
(string): Giá trị cho thuộc tínhid
của phần tử HTML bao bọc thông báo. Giá trị mặc định là một chuỗi rỗng.additional_classes
(string|array): Một chuỗi hoặc một mảng các tên lớp CSS bổ sung để thêm vào phần tử HTML bao bọc thông báo. Giá trị mặc định là một mảng rỗng.attributes
(array): Một mảng các thuộc tính HTML bổ sung (ví dụ:['data-custom' => 'value']
). Giá trị mặc định là một mảng rỗng.paragraph_wrap
(bool): Xác định xem thông báo có nên được bao bọc trong thẻ<p>
hay không. Giá trị mặc định làtrue
.
Cách sử dụng:
Để hiển thị một thông báo quản trị, bạn cần “hook” hàm của mình vào một action hook thích hợp trong khu vực quản trị. Action hook phổ biến nhất cho việc này là admin_notices
(hiển thị trên tất cả các trang quản trị) hoặc các action hook cụ thể hơn cho từng trang (ví dụ: admin_init
cho một số tác vụ nhất định).
Ví dụ cơ bản:
<?php
function my_admin_notice() {
wp_admin_notice( 'Đây là một thông báo quản trị cơ bản.' );
}
add_action( 'admin_notices', 'my_admin_notice' );
?>
Đoạn mã này sẽ hiển thị một thông báo mặc định trên tất cả các trang quản trị.
Ví dụ với các loại thông báo khác nhau:
<?php
function my_success_notice() {
wp_admin_notice( 'Thao tác đã thành công!', [
'type' => 'success',
'dismissible' => true,
] );
}
add_action( 'admin_notices', 'my_success_notice' );
function my_error_notice() {
wp_admin_notice( 'Đã xảy ra lỗi. Vui lòng kiểm tra lại.', [
'type' => 'error',
] );
}
add_action( 'admin_notices', 'my_error_notice' );
function my_warning_notice() {
wp_admin_notice( 'Cảnh báo: Hãy cẩn thận khi thực hiện hành động này.', [
'type' => 'warning',
'additional_classes' => 'my-custom-warning',
] );
}
add_action( 'admin_notices', 'my_warning_notice' );
function my_info_notice() {
wp_admin_notice( 'Thông tin: Đây là một thông báo thông tin.', [
'type' => 'info',
] );
}
add_action( 'admin_notices', 'my_info_notice' );
?>
Nơi đặt mã:
Bạn có thể đặt đoạn mã này trong:
- Tệp
functions.php
của theme hiện tại: Cách này phù hợp cho các tùy chỉnh liên quan đến theme. Tuy nhiên, thông báo sẽ biến mất nếu bạn chuyển theme. - Plugin tùy chỉnh: Đây là cách tốt nhất để đảm bảo thông báo vẫn hiển thị ngay cả khi bạn thay đổi theme.
Lưu ý quan trọng:
- Tính nhất quán: Sử dụng
wp_admin_notice()
giúp đảm bảo giao diện thông báo nhất quán với các thông báo khác của WordPress. - Khả năng loại bỏ: Cung cấp tùy chọn
dismissible
cho các thông báo không quan trọng để tránh làm người dùng khó chịu. - Rõ ràng và ngắn gọn: Nội dung thông báo nên rõ ràng, dễ hiểu và đi thẳng vào vấn đề. Tránh sử dụng ngôn ngữ mơ hồ hoặc quá nhiều chi tiết không cần thiết.
- Liên quan và kịp thời: Chỉ hiển thị các thông báo thực sự cần thiết và liên quan đến ngữ cảnh hiện tại của người dùng. Các thông báo lỗi thời hoặc không liên quan có thể làm rối giao diện quản trị.
- Tránh lạm dụng: Sử dụng thông báo quản trị một cách hợp lý. Quá nhiều thông báo có thể gây xao nhãng và làm giảm trải nghiệm người dùng.
- Khả năng truy cập: Đảm bảo thông báo của bạn có thể truy cập được đối với tất cả người dùng, bao gồm cả những người có khuyết tật. Sử dụng màu sắc tương phản cao cho văn bản và nền, đồng thời cung cấp văn bản thay thế cho hình ảnh (nếu có).
- Kiểm tra: Kiểm tra thông báo trên các trình duyệt và thiết bị khác nhau để đảm bảo chúng hiển thị đúng cách.
- Bảo mật: Luôn tuân thủ các nguyên tắc bảo mật khi tạo thông báo, đặc biệt là khi hiển thị dữ liệu người dùng hoặc thông tin nhạy cảm. Đảm bảo mọi dữ liệu đều được làm sạch và xác thực để tránh các lỗ hổng bảo mật như tấn công XSS.
Sử dụng wp_admin_notice()
là một cách hiệu quả và dễ dàng để giao tiếp với người dùng trong khu vực quản trị WordPress, giúp cải thiện trải nghiệm người dùng và cung cấp thông tin quan trọng một cách trực quan.