如何在WordPress中灵活展示管理通知?使用stellarwp/admin-notices可以!

可以通过一下地址学习composer学习地址

在开发 wordpress 插件的过程中,我遇到了一个常见但棘手的问题:如何在管理后台高效地展示通知。通常,用户可能需要在不同条件下看到通知,比如特定用户角色、特定页面或者时间范围内。然而,传统的方法不仅繁琐,而且容易出错,导致通知无法按预期展示。

经过一番研究,我发现了 stellarwp/admin-notices 这个库,它大大简化了这个过程。使用这个库,你可以轻松地在 WordPress 管理后台展示通知,并且可以根据复杂的条件灵活控制通知的显示。

首先,通过 composer 安装 stellarwp/admin-notices 非常简单:

composer require stellarwp/admin-notices

接下来,你需要初始化这个库,以避免与其他插件的冲突:

use StellarWPAdminNoticesAdminNotices;  AdminNotices::initialize('my_plugin', plugin_dir_url(__FILE__) . 'vendor/stellarwp/admin-notices');

这个库的核心是 AdminNotice 类,它允许你定义通知及其显示条件。例如,你可以这样设置通知:

use StellarWPAdminNoticesAdminNotices;  $notice = AdminNotices::show('my_notice', '这是一个通知')     ->on('edit.php')     ->ifUserCan('manage_options')     ->dismissible();

这个例子展示了一个通知,它会在 edit.php 页面上显示,并且只有具有 manage_options 权限的用户才能看到。此外,这个通知是可Dismissible的,用户可以选择永久隐藏它。

stellarwp/admin-notices 还支持更复杂的条件设置,比如时间范围:

$notice = AdminNotices::show('my_notice', '这是一个通知')     ->between('2022-01-01 00:00:00', '2022-01-31 23:59:59');

此外,你可以自定义通知的外观和行为。例如,如果你想使用自定义的样式和脚本,你可以使用 custom 方法:

$notice = AdminNotices::show('my_notice_custom', '这是一个自定义通知')     ->custom()     ->location('above_header');

这个库还提供了重置已Dismissible通知的方法,这在某些情况下非常有用:

AdminNotices::resetNoticeForUser('my_notice', get_current_user_id());

总的来说,stellarwp/admin-notices 库极大地简化了在 WordPress 管理后台展示通知的过程。它不仅提供了灵活的条件设置,还支持自定义通知的外观和行为,极大提升了开发效率和用户体验。如果你正在开发 WordPress 插件,并且需要展示管理通知,那么这个库绝对值得一试。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享