在WordPress的后端,您可以使用如下所示的HTML添加通知和错误
<div class="updated error">
<p><?php esc_html_e( \'A bad thing happened!\', \'your-text-domain\' );?></p>
</div>
您可以使用添加这些通知
admin_notices
钩
add_action( \'admin_notices\', function(){
?>
<div class="updated error">
<p><?php esc_html_e( \'A bad thing happened!\', \'your-text-domain\' );?></p>
</div>
<?php
} );
WordPress是否有一个机制,或者是否有一个“通常认为良好的”第三方实践,允许您设置“一次性”通知?我想的情况是
如果用户重新加载或重新导航到页面(后退按钮),消息不会再次显示。我使用的其他应用程序框架都有一个会话抽象来处理类似的事情。我很好奇WordPress是否有类似的功能,或者是否有一种被普遍接受的方式来实现这一点,或者WordPress插件是否没有做到这一点™.
SO网友:Ahmed Fouad
想法是你需要save_errors
或随时更新包含错误/通知的选项。一旦其输出admin_notices
它将被清除。
/**
* Sample_Notice_Handling
*/
class Sample_Notice_Handling {
public static $_notices = array();
/**
* Constructor
*/
public function __construct() {
add_action( \'admin_notices\', array( $this, \'output_errors\' ) );
add_action( \'shutdown\', array( $this, \'save_errors\' ) );
}
/**
* Add an error message
*/
public static function add_error( $text ) {
self::$_notices[] = $text;
}
/**
* Save errors to an option
*/
public function save_errors() {
update_option( \'custom_notices\', self::$_notices );
}
/**
* Show any stored error messages
*/
public function output_errors() {
$errors = maybe_unserialize( get_option( \'custom_notices\' ) );
if ( ! empty( $errors ) ) {
echo \'<div id="mc_errors" class="error notice is-dismissible">\';
foreach ( $errors as $error ) {
echo \'<p>\' . wp_kses_post( $error ) . \'</p>\';
}
echo \'</div>\';
// Clear
delete_option( \'custom_notices\' );
}
}
}