web-dev-qa-db-fra.com

Supprimer l'avis d'administration lors de l'actualisation de la page

J'ai une question simple à propos des notifications d'administrateur. Je veux afficher un message comme "Enregistrement mis à jour avec succès", et lorsque l'utilisateur actualise à nouveau la même page, cet avis ne devrait pas être là car aucun enregistrement n'est mis à jour à nouveau.

Tout comme les paramètres Api, la mention "Paramètres enregistrés" s'affiche. et lorsque nous actualisons la page, l'avis n'est pas là. Je vois dans l'argument URI est là comme

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

Je sais ici settings-updated = true est la clé, et elle disparaît immédiatement et l'utilisateur peut à peine la remarquer. Mais je ne sais pas comment il disparaît après avoir pris effet. Je pense que je manque un truc très simple et basique.

Toute aide très appréciée

2
W.Ahmed

Cela se fait par wp_admin_canonical_url :

  • Il appelle wp_removable_query_args pour récupérer une liste de paramètres de chaîne de requête à supprimer, qui comprend settings-updated.
  • Il écrit ensuite un script dans l'en-tête de la page pour utiliser window.history.replaceState pour supprimer la chaîne de requête de la barre d'URL de votre navigateur.

    <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>
    

Si vous souhaitez ajouter vos propres arguments à la liste qui est supprimée, vous pouvez accrocher amovible_query_args .

1
Rup