web-dev-qa-db-ja.com

ページの更新時に管理者通知を削除する

管理者通知について簡単な質問があります。 「レコードが正常に更新されました」などのメッセージを表示したいのですが、ユーザーが同じページを再度更新すると、レコードが再度更新されないため、この通知は表示されません。

設定APIと同様に、「設定が保存されました」という通知があります。ページを更新しても、通知はありません。私はURIの引数にあるように見える

http://example.com/wp-admin/admin.php?page=xyz&settings-updated=true

私はここで知っていますsettings-updated = trueが鍵であり、すぐに消えてユーザーはほとんど気付かないでしょう。しかし、私はそれが効果を発揮した後どのように消えるかわかりません。私は非常にシンプルで基本的なトリックが欠けていると思います。

高く評価された助け

2
W.Ahmed

これは wp_admin_canonical_url によって行われます:

  • wp_removable_query_args を呼び出して、settings-updatedを含む、削除するクエリ文字列パラメーターのリストをフェッチします。
  • 次に、window.history.replaceStateを使用してブラウザーのURLバーからクエリ文字列を削除するスクリプトをページヘッダーに書き込みます。

    <link id="wp-admin-canonical" rel="canonical"
          href="http://example.com/wp-admin/admin.php?page=xyz">
    <script>
        if ( window.history.replaceState ) {
            window.history.replaceState( null, null,
                document.getElementById( 'wp-admin-canonical' ).href +
                    window.location.hash );
        }
    </script>
    

削除されるリストに独自の引数を追加する場合は、 removable_query_args をフックできます。

1
Rup