Make WordPress Core

Ticket #26758: 26758.patch

File 26758.patch, 4.3 KB (added by afercia, 10 years ago)
  • src/wp-admin/edit-tag-form.php

     
    4848         */
    4949        do_action( 'edit_tag_form_pre', $tag );
    5050}
     51
    5152/**
     53 * Use with caution, see http://codex.wordpress.org/Function_Reference/wp_reset_vars
     54 */
     55wp_reset_vars( array( 'wp_http_referer' ) );
     56
     57$wp_http_referer = remove_query_arg( array( 'action', 'message', 'tag_ID' ), $wp_http_referer );
     58
     59$messages = array();
     60// 0 = unused. Messages start at index 1.
     61$messages['_item'] = array(
     62        0 => '',
     63        1 => __( 'Item added.' ),
     64        2 => __( 'Item deleted.' ),
     65        3 => __( 'Item updated.' ),
     66        4 => __( 'Item not added.' ),
     67        5 => __( 'Item not updated.' ),
     68        6 => __( 'Items deleted.' ),
     69);
     70$messages['category'] = array(
     71        0 => '',
     72        1 => __( 'Category added.' ),
     73        2 => __( 'Category deleted.' ),
     74        3 => __( 'Category updated.' ),
     75        4 => __( 'Category not added.' ),
     76        5 => __( 'Category not updated.' ),
     77        6 => __( 'Categories deleted.' ),
     78);
     79$messages['post_tag'] = array(
     80        0 => '',
     81        1 => __( 'Tag added.' ),
     82        2 => __( 'Tag deleted.' ),
     83        3 => __( 'Tag updated.' ),
     84        4 => __( 'Tag not added.' ),
     85        5 => __( 'Tag not updated.' ),
     86        6 => __( 'Tags deleted.' ),
     87);
     88
     89
     90/**
     91 * Filter the messages displayed when a tag is updated.
     92 *
     93 * @since 4.1.0
     94 *
     95 * @param array $messages The messages to be displayed.
     96 */
     97$messages = apply_filters( 'term_updated_messages', $messages );
     98
     99$message = false;
     100if ( isset( $_REQUEST['message'] ) && ( $msg = (int) $_REQUEST['message'] ) ) {
     101        if ( isset( $messages[ $taxonomy ][ $msg ] ) ) {
     102                $message = $messages[ $taxonomy ][ $msg ];
     103        } elseif ( ! isset( $messages[ $taxonomy ] ) && isset( $messages['_item'][ $msg ] ) ) {
     104                $message = $messages['_item'][ $msg ];
     105        }
     106}
     107
     108
     109/**
    52110 * Fires before the Edit Term form for all taxonomies.
    53111 *
    54112 * The dynamic portion of the hook name, $taxonomy, refers to
     
    63121
    64122<div class="wrap">
    65123<h2><?php echo $tax->labels->edit_item; ?></h2>
     124<?php if ( $message ) : ?>
     125        <div id="message" class="updated">
     126                <p><strong><?php echo $message; ?></strong></p>
     127                <?php if ( $wp_http_referer ) { ?>
     128                <p><a href="<?php echo esc_url( $wp_http_referer ); ?>"><?php printf( __( '&larr; Back to %s' ), $tax->labels->name ); ?></a></p>
     129                <?php } else { ?>
     130                <p><a href="<?php echo esc_url( wp_get_referer() ); ?>"><?php printf( __( '&larr; Back to %s' ), $tax->labels->name ); ?></a></p>
     131                <?php } ?>
     132        </div>
     133<?php endif; ?>
    66134<div id="ajax-response"></div>
    67135<?php
    68136/**
  • src/wp-admin/edit-tags.php

     
    5454        if ( 'post' != $post_type )
    5555                $location .= '&post_type=' . $post_type;
    5656
    57         if ( $referer = wp_get_original_referer() ) {
     57        if ( $referer = wp_get_referer() ) {
    5858                if ( false !== strpos( $referer, 'edit-tags.php' ) )
    5959                        $location = $referer;
    6060        }
     
    145145        if ( 'post' != $post_type )
    146146                $location .= '&post_type=' . $post_type;
    147147
    148         if ( $referer = wp_get_original_referer() ) {
     148        if ( $referer = wp_get_referer() ) {
    149149                if ( false !== strpos( $referer, 'edit-tags.php' ) )
    150150                        $location = $referer;
    151151        }
  • src/wp-admin/includes/class-wp-terms-list-table.php

     
    298298                $name = apply_filters( 'term_name', $pad . ' ' . $tag->name, $tag );
    299299
    300300                $qe_data = get_term( $tag->term_id, $taxonomy, OBJECT, 'edit' );
    301                 $edit_link = esc_url( get_edit_term_link( $tag->term_id, $taxonomy, $this->screen->post_type ) );
    302301
     302                $doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
     303
     304                $uri = $doing_ajax ? wp_get_referer() : $_SERVER['REQUEST_URI'];
     305
     306                $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $uri ) ), get_edit_term_link( $tag->term_id, $taxonomy, $this->screen->post_type ) ) );
     307
    303308                $out = '<strong><a class="row-title" href="' . $edit_link . '" title="' . esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $name ) ) . '">' . $name . '</a></strong><br />';
    304309
    305310                $actions = array();