WordPress.org

Make WordPress Core

Ticket #23367: 23367.6.diff

File 23367.6.diff, 1.7 KB (added by morganestes, 7 years ago)

Changes based on johnbillion's recommendations

  • src/wp-admin/admin.php

    diff --git src/wp-admin/admin.php src/wp-admin/admin.php
    index 22813cc..7a34f37 100644
    if ( isset($_GET['import']) && !defined('WP_LOAD_IMPORTERS') ) 
    3030
    3131require_once(dirname(dirname(__FILE__)) . '/wp-load.php');
    3232
     33/**
     34 * Remove single-use URL parameters and create canonical link based on new URL.
     35 *
     36 * Remove specific query string parameters from a URL, create the canonical link,
     37 * put it in the admin header, and change the current URL to match.
     38 *
     39 * @since 4.2.0
     40 */
     41function wp_admin_canonical_url() {
     42        $removable_query_args = array(
     43                'message', 'updated', 'settings-updated',
     44                'saved', 'activated', 'activate',
     45                'deactivate', 'locked', 'skipped',
     46                'deleted', 'trashed', 'untrashed',
     47                'update', 'enabled', 'disabled',
     48        );
     49
     50        /**
     51         * Filter the list of URL parameters to remove.
     52         *
     53         * @since 4.2.0
     54         *
     55         * @param array $removable_query_args An array of parameters to remove from the URL.
     56         */
     57        $removable_query_args = apply_filters( 'removable_query_args', $removable_query_args );
     58
     59        // Ensure we're using an absolute URL.
     60        $current_url  = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
     61        $filtered_url = remove_query_arg( $removable_query_args, $current_url );
     62        ?>
     63        <link id="wp-admin-canonical" rel="canonical" href="<?php echo esc_url( $filtered_url ); ?>" />
     64        <script>if ( window.history.replaceState ) {
     65                        window.history.replaceState( null, null, document.getElementById( 'wp-admin-canonical' ).href );
     66                }</script>
     67<?php
     68}
     69
     70add_action( 'admin_head', 'wp_admin_canonical_url' );
     71
    3372nocache_headers();
    3473
    3574if ( get_option('db_upgraded') ) {