Ticket #49916: 49916.2.diff
| File 49916.2.diff, 5.0 KB (added by , 6 years ago) |
|---|
-
src/wp-admin/includes/class-wp-plugins-list-table.php
615 615 * @global string $s 616 616 * @global array $totals 617 617 * 618 * @staticvar array $plugin_id_attrs 619 * 618 620 * @param array $item 619 621 */ 620 622 public function single_row( $item ) { 621 623 global $status, $page, $s, $totals; 624 static $plugin_id_attrs = array(); 622 625 623 626 list( $plugin_file, $plugin_data ) = $item; 624 627 625 $plugin_slug = isset( $plugin_data['slug'] ) ? $plugin_data['slug'] : sanitize_title( $plugin_data['Name'] ); 628 $plugin_slug = isset( $plugin_data['slug'] ) ? $plugin_data['slug'] : sanitize_title( $plugin_data['Name'] ); 629 $plugin_id_attr = $plugin_slug; 626 630 631 // Ensure the ID attribute is unique. 632 $suffix = 2; 633 while ( in_array( $plugin_id_attr, $plugin_id_attrs, true ) ) { 634 $plugin_id_attr = "$plugin_slug-$suffix"; 635 $suffix++; 636 } 637 638 $plugin_id_attrs[] = $plugin_id_attr; 639 627 640 $context = $status; 628 641 $screen = $this->screen; 629 642 … … 681 694 $actions['deactivate'] = sprintf( 682 695 '<a href="%s" id="deactivate-%s" aria-label="%s">%s</a>', 683 696 wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . urlencode( $plugin_file ) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'deactivate-plugin_' . $plugin_file ), 684 esc_attr( $plugin_ slug),697 esc_attr( $plugin_id_attr ), 685 698 /* translators: %s: Plugin name. */ 686 699 esc_attr( sprintf( _x( 'Network Deactivate %s', 'plugin' ), $plugin_data['Name'] ) ), 687 700 __( 'Network Deactivate' ) … … 692 705 $actions['activate'] = sprintf( 693 706 '<a href="%s" id="activate-%s" class="edit" aria-label="%s">%s</a>', 694 707 wp_nonce_url( 'plugins.php?action=activate&plugin=' . urlencode( $plugin_file ) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'activate-plugin_' . $plugin_file ), 695 esc_attr( $plugin_ slug),708 esc_attr( $plugin_id_attr ), 696 709 /* translators: %s: Plugin name. */ 697 710 esc_attr( sprintf( _x( 'Network Activate %s', 'plugin' ), $plugin_data['Name'] ) ), 698 711 __( 'Network Activate' ) … … 703 716 $actions['delete'] = sprintf( 704 717 '<a href="%s" id="delete-%s" class="delete" aria-label="%s">%s</a>', 705 718 wp_nonce_url( 'plugins.php?action=delete-selected&checked[]=' . urlencode( $plugin_file ) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'bulk-plugins' ), 706 esc_attr( $plugin_ slug),719 esc_attr( $plugin_id_attr ), 707 720 /* translators: %s: Plugin name. */ 708 721 esc_attr( sprintf( _x( 'Delete %s', 'plugin' ), $plugin_data['Name'] ) ), 709 722 __( 'Delete' ) … … 724 737 $actions['deactivate'] = sprintf( 725 738 '<a href="%s" id="deactivate-%s" aria-label="%s">%s</a>', 726 739 wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . urlencode( $plugin_file ) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'deactivate-plugin_' . $plugin_file ), 727 esc_attr( $plugin_ slug),740 esc_attr( $plugin_id_attr ), 728 741 /* translators: %s: Plugin name. */ 729 742 esc_attr( sprintf( _x( 'Deactivate %s', 'plugin' ), $plugin_data['Name'] ) ), 730 743 __( 'Deactivate' ) … … 735 748 $actions['resume'] = sprintf( 736 749 '<a href="%s" id="resume-%s" class="resume-link" aria-label="%s">%s</a>', 737 750 wp_nonce_url( 'plugins.php?action=resume&plugin=' . urlencode( $plugin_file ) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'resume-plugin_' . $plugin_file ), 738 esc_attr( $plugin_ slug),751 esc_attr( $plugin_id_attr ), 739 752 /* translators: %s: Plugin name. */ 740 753 esc_attr( sprintf( _x( 'Resume %s', 'plugin' ), $plugin_data['Name'] ) ), 741 754 __( 'Resume' ) … … 746 759 $actions['activate'] = sprintf( 747 760 '<a href="%s" id="activate-%s" class="edit" aria-label="%s">%s</a>', 748 761 wp_nonce_url( 'plugins.php?action=activate&plugin=' . urlencode( $plugin_file ) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'activate-plugin_' . $plugin_file ), 749 esc_attr( $plugin_ slug),762 esc_attr( $plugin_id_attr ), 750 763 /* translators: %s: Plugin name. */ 751 764 esc_attr( sprintf( _x( 'Activate %s', 'plugin' ), $plugin_data['Name'] ) ), 752 765 __( 'Activate' ) … … 757 770 $actions['delete'] = sprintf( 758 771 '<a href="%s" id="delete-%s" class="delete" aria-label="%s">%s</a>', 759 772 wp_nonce_url( 'plugins.php?action=delete-selected&checked[]=' . urlencode( $plugin_file ) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'bulk-plugins' ), 760 esc_attr( $plugin_ slug),773 esc_attr( $plugin_id_attr ), 761 774 /* translators: %s: Plugin name. */ 762 775 esc_attr( sprintf( _x( 'Delete %s', 'plugin' ), $plugin_data['Name'] ) ), 763 776 __( 'Delete' )