在開發 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 插件,并且需要展示管理通知,那么這個庫絕對值得一試。