if ( ! $allowed ) {
if ( ! $theme->errors() ) {
- $actions['enable'] = '<a href="' . esc_url( wp_nonce_url($url . 'action=enable&theme=' . $theme_key . '&paged=' . $page . '&s=' . $s, 'enable-theme_' . $stylesheet ) ) . '" title="' . esc_attr__('Enable this theme') . '" class="edit">' . ( $this->is_site_themes ? __( 'Enable' ) : __( 'Network Enable' ) ) . '</a>';
+ $url = add_query_arg( array(
+ 'action' => 'enable',
+ 'theme' => $theme_key,
+ 'paged' => $page,
+ 's' => $s,
+ ), $url );
+
+ if ( $this->is_site_themes ) {
+ /* translators: %s: theme name */
+ $aria_label = sprintf( __( 'Enable %s' ), $theme->display( 'Name' ) );
+ } else {
+ /* translators: %s: theme name */
+ $aria_label = sprintf( __( 'Network Enable %s' ), $theme->display( 'Name' ) );
+ }
+
+ $actions['enable'] = sprintf( '<a href="%s" class="edit" aria-label="%s">%s</a>',
+ esc_url( wp_nonce_url( $url, 'enable-theme_' . $stylesheet ) ),
+ esc_attr( $aria_label ),
+ ( $this->is_site_themes ? __( 'Enable' ) : __( 'Network Enable' ) )
+ );
}
} else {
- $actions['disable'] = '<a href="' . esc_url( wp_nonce_url($url . 'action=disable&theme=' . $theme_key . '&paged=' . $page . '&s=' . $s, 'disable-theme_' . $stylesheet ) ) . '" title="' . esc_attr__('Disable this theme') . '">' . ( $this->is_site_themes ? __( 'Disable' ) : __( 'Network Disable' ) ) . '</a>';
+ $url = add_query_arg( array(
+ 'action' => 'disable',
+ 'theme' => $theme_key,
+ 'paged' => $page,
+ 's' => $s,
+ ), $url );
+
+ if ( $this->is_site_themes ) {
+ /* translators: %s: theme name */
+ $aria_label = sprintf( __( 'Disable %s' ), $theme->display( 'Name' ) );
+ } else {
+ /* translators: %s: theme name */
+ $aria_label = sprintf( __( 'Network Disable %s' ), $theme->display( 'Name' ) );
+ }
+
+ $actions['disable'] = sprintf( '<a href="%s" aria-label="%s">%s</a>',
+ esc_url( wp_nonce_url( $url, 'disable-theme_' . $stylesheet ) ),
+ esc_attr( $aria_label ),
+ ( $this->is_site_themes ? __( 'Disable' ) : __( 'Network Disable' ) )
+ );
}
if ( current_user_can('edit_themes') ) {
- $actions['edit'] = '<a href="' . esc_url('theme-editor.php?theme=' . $theme_key ) . '" title="' . esc_attr__('Open this theme in the Theme Editor') . '" class="edit">' . __('Edit') . '</a>';
+ $url = add_query_arg( array(
+ 'theme' => $theme_key,
+ ), 'theme-editor.php' );
+
+ /* translators: %s: theme name */
+ $aria_label = sprintf( __( 'Open %s in the Theme Editor' ), $theme->display( 'Name' ) );
+
+ $actions['edit'] = sprintf( '<a href="%s" class="edit" aria-label="%s">%s</a>',
+ esc_url( $url ),
+ esc_attr( $aria_label ),
+ __( 'Edit' )
+ );
}
if ( ! $allowed && current_user_can( 'delete_themes' ) && ! $this->is_site_themes && $stylesheet != get_option( 'stylesheet' ) && $stylesheet != get_option( 'template' ) ) {
- $actions['delete'] = '<a href="' . esc_url( wp_nonce_url( 'themes.php?action=delete-selected&checked[]=' . $theme_key . '&theme_status=' . $context . '&paged=' . $page . '&s=' . $s, 'bulk-themes' ) ) . '" title="' . esc_attr__( 'Delete this theme' ) . '" class="delete">' . __( 'Delete' ) . '</a>';
+ $url = add_query_arg( array(
+ 'action' => 'delete-selected',
+ 'checked[]' => $theme_key,
+ 'theme_status' => $context,
+ 'paged' => $page,
+ 's' => $s,
+ ), 'themes.php' );
+
+ /* translators: %s: theme name */
+ $aria_label = sprintf( __( 'Delete %s' ), $theme->display( 'Name' ) );
+
+ $actions['delete'] = sprintf( '<a href="%s" class="delete" aria-label="%s">%s</a>',
+ esc_url( wp_nonce_url( $url, 'bulk-themes' ) ),
+ esc_attr( $aria_label ),
+ __( 'Delete' )
+ );
}
/**
* Filter the action links displayed for each theme in the Multisite
$theme_meta[] = sprintf( __( 'By %s' ), $theme->display('Author') );
if ( $theme->get('ThemeURI') ) {
- $theme_meta[] = '<a href="' . $theme->display('ThemeURI') . '" title="' . esc_attr__( 'Visit theme homepage' ) . '">' . __( 'Visit Theme Site' ) . '</a>';
+ /* translators: %s: theme name */
+ $aria_label = sprintf( __( 'Visit %s homepage' ), $theme->display( 'Name' ) );
+
+ $theme_meta[] = sprintf( '<a href="%s" aria-label="%s">%s</a>',
+ $theme->display( 'ThemeURI' ),
+ esc_attr( $aria_label ),
+ __( 'Visit Theme Site' )
+ );
}
/**
* Filter the array of row meta for each theme in the Multisite themes
$stylesheet = $theme->get_stylesheet();
$class = ! $allowed ? 'inactive' : 'active';
-
- $id = sanitize_html_class( $theme->get_stylesheet() );
-
if ( ! empty( $totals['upgrade'] ) && ! empty( $theme->update ) ) {
$class .= ' update';
}
- echo "<tr id='$id' class='$class'>";
+ printf( '<tr class="%s" data-slug="%s">',
+ esc_attr( $class ),
+ esc_attr( $stylesheet )
+ );
$this->single_row_columns( $theme );