WordPress 管理通知的持久化解決方案:collizo4sky/persist-admin-notices-dismissal 庫

最近在開發(fā)一個(gè) wordpress 插件時(shí),遇到了一個(gè)問題:插件需要顯示一個(gè)重要的提示信息,但這個(gè)信息在用戶關(guān)閉后,刷新頁面就會(huì)再次出現(xiàn)。這不僅影響用戶體驗(yàn),也增加了不必要的麻煩。我嘗試了一些方法,例如使用 WordPress 的選項(xiàng)存儲(chǔ)來記錄通知狀態(tài),但發(fā)現(xiàn)實(shí)現(xiàn)起來比較復(fù)雜,而且代碼不夠優(yōu)雅。

這時(shí),我發(fā)現(xiàn)了 collizo4sky/persist-admin-notices-dismissal 這個(gè)庫。它專門用于解決 WordPress 管理通知的持久化問題,并且使用起來非常簡單。首先,使用 composer 安裝該庫:

composer require collizo4sky/persist-admin-notices-dismissal

安裝完成后,我們需要在插件中引入該庫并進(jìn)行初始化:

add_action( 'admin_init', array( 'PAnD', 'init' ) );

接下來,讓我們看看如何使用這個(gè)庫來持久化一個(gè)管理通知。假設(shè)我們想要顯示一個(gè)成功的提示信息:

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” 屬性指定了通知的唯一標(biāo)識(shí)符和持久化策略(forever 表示永久隱藏)。PAnD::is_admin_notice_active() 函數(shù)檢查通知是否已被用戶關(guān)閉。如果已被關(guān)閉,則通知將不會(huì)顯示。 這個(gè)庫還支持設(shè)置通知隱藏的天數(shù),例如 data-dismissible=”my-notice-3″ 將會(huì)在3天后再次顯示。

這個(gè)庫的優(yōu)勢(shì)在于:

  • 簡單易用: 只需簡單的幾行代碼即可實(shí)現(xiàn)通知的持久化。
  • 高效便捷: 無需手動(dòng)處理選項(xiàng)存儲(chǔ),庫會(huì)自動(dòng)完成所有持久化操作。
  • 靈活可控: 支持永久隱藏和設(shè)置隱藏天數(shù)兩種策略。

通過使用 collizo4sky/persist-admin-notices-dismissal 庫,我成功地解決了 WordPress 管理通知的持久化問題,提升了用戶體驗(yàn),也簡化了插件的代碼。 現(xiàn)在,我的插件提示信息只會(huì)在用戶第一次看到并關(guān)閉后才會(huì)消失,避免了重復(fù)顯示帶來的困擾。 如果你也遇到類似的問題,不妨試試這個(gè)庫,相信它會(huì)給你帶來很大的幫助。 記住,需要在你的 admin_init hook 中調(diào)用 PAnD::init() 來初始化這個(gè)庫。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享