最近在开发一个 wordpress 插件时,遇到了一个问题:插件需要显示一个重要的提示信息,但这个信息在用户关闭后,刷新页面就会再次出现。这不仅影响用户体验,也增加了不必要的麻烦。我尝试了一些方法,例如使用 WordPress 的选项存储来记录通知状态,但发现实现起来比较复杂,而且代码不够优雅。
这时,我发现了 collizo4sky/persist-admin-notices-dismissal 这个库。它专门用于解决 WordPress 管理通知的持久化问题,并且使用起来非常简单。首先,使用 composer 安装该库:
composer require collizo4sky/persist-admin-notices-dismissal
安装完成后,我们需要在插件中引入该库并进行初始化:
add_action( 'admin_init', array( 'PAnD', 'init' ) );
接下来,让我们看看如何使用这个库来持久化一个管理通知。假设我们想要显示一个成功的提示信息:
function my_plugin_success_notice() { if ( ! PAnD::is_admin_notice_active( 'my-success-notice-forever' ) ) { return; } ?> <div data-dismissible="my-success-notice-forever" class="updated notice notice-success is-dismissible"> <p><?php _e( '操作成功!', 'my-plugin-textdomain' ); ?></p> </div> <?php}add_action( 'admin_notices', 'my_plugin_success_notice' );
这段代码中,data-dismissible=”my-success-notice-forever” 属性指定了通知的唯一标识符和持久化策略(forever 表示永久隐藏)。PAnD::is_admin_notice_active() 函数检查通知是否已被用户关闭。如果已被关闭,则通知将不会显示。 这个库还支持设置通知隐藏的天数,例如 data-dismissible=”my-notice-3″ 将会在3天后再次显示。
这个库的优势在于:
- 简单易用: 只需简单的几行代码即可实现通知的持久化。
- 高效便捷: 无需手动处理选项存储,库会自动完成所有持久化操作。
- 灵活可控: 支持永久隐藏和设置隐藏天数两种策略。
通过使用 collizo4sky/persist-admin-notices-dismissal 库,我成功地解决了 WordPress 管理通知的持久化问题,提升了用户体验,也简化了插件的代码。 现在,我的插件提示信息只会在用户第一次看到并关闭后才会消失,避免了重复显示带来的困扰。 如果你也遇到类似的问题,不妨试试这个库,相信它会给你带来很大的帮助。 记住,需要在你的 admin_init hook 中调用 PAnD::init() 来初始化这个库。