[wp-trac] [WordPress Trac] #23367: Remove message parameters from admin URl's in the browser address bar

WordPress Trac noreply at wordpress.org
Thu Feb 19 23:48:41 UTC 2015

#23367: Remove message parameters from admin URl's in the browser address bar
 Reporter:  mark-k                               |       Owner:
     Type:  enhancement                          |  morganestes
 Priority:  low                                  |      Status:  assigned
Component:  Administration                       |   Milestone:  Future
 Severity:  minor                                |  Release
 Keywords:  good-first-bug has-patch needs-      |     Version:
  unit-tests                                     |  Resolution:
                                                 |     Focuses:
                                                 |  administration

Comment (by markjaquith):

 Summarizing some feedback I gave @morganestes in Slack:

 1. This approach sets a global `wp-admin` list of URL parameters that
 can't be used for anything other than transient message passing. If any
 plugin is using one of these for non-transient information (like selecting
 a plugin admin menu's sub-tab), a user refresh will result in that query
 parameter being gone, with unexpected results. It’s not the end of the
 world, but something to keep in mind.

 2. We shouldn't be doing all this work in JavaScript. We have PHP
 functions for removing query args. We should just make a function that, in
 the `<head>` section, outputs two things:

 <link id="wp-admin-canonical" rel="canonical" href="<?php echo
 wp_admin_canonical_url(); ?>" />


 <script>if ( typeof history.replaceState === 'function' ) {
 history.replaceState( null, null, document.getElementById('wp-admin-
 canonical').href ); }</script>

 And then `wp_admin_canonical_url()` would be something like this:

 function wp_admin_canonical_url() {
     $parameters_to_remove = array(
     $parameters_to_remove = apply_filters( 'removable_url_params',
 $parameters_to_remove );
     return remove_query_arg( $parameters_to_remove );


 1. Less code.
 2. Not duplicating something in JS that we already have in PHP.
 3. `rel=canonical` is a standard practice, and I think this is a good use
 of it.
 4. No Underscore.js dependency on every admin screen. Indeed, this has no

Ticket URL: <https://core.trac.wordpress.org/ticket/23367#comment:25>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list