wp/wp-includes/customize/class-wp-customize-themes-section.php
changeset 21 48c4eec2b7e6
parent 18 be944660c56a
child 22 8c2e4d02f4ef
--- a/wp/wp-includes/customize/class-wp-customize-themes-section.php	Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-includes/customize/class-wp-customize-themes-section.php	Fri Sep 05 18:40:08 2025 +0200
@@ -48,7 +48,7 @@
 	public $filter_type = 'local';
 
 	/**
-	 * Get section parameters for JS.
+	 * Gets section parameters for JS.
 	 *
 	 * @since 4.9.0
 	 * @return array Exported parameters.
@@ -62,7 +62,7 @@
 	}
 
 	/**
-	 * Render a themes section as a JS template.
+	 * Renders a themes section as a JS template.
 	 *
 	 * The template is only rendered by PHP once, so all actions are prepared at once on the server side.
 	 *
@@ -112,10 +112,10 @@
 	}
 
 	/**
-	 * Render the filter bar portion of a themes section as a JS template.
+	 * Renders the filter bar portion of a themes section as a JS template.
 	 *
 	 * The template is only rendered by PHP once, so all actions are prepared at once on the server side.
-	 * The filter bar container is rendered by @see `render_template()`.
+	 * The filter bar container is rendered by {@see render_template()}.
 	 *
 	 * @since 4.9.0
 	 */
@@ -124,48 +124,68 @@
 		<button type="button" class="button button-primary customize-section-back customize-themes-mobile-back"><?php _e( 'Go to theme sources' ); ?></button>
 		<# if ( 'wporg' === data.action ) { #>
 			<div class="search-form">
-				<label for="wp-filter-search-input-{{ data.id }}" class="screen-reader-text"><?php _e( 'Search themes&hellip;' ); ?></label>
-				<input type="search" id="wp-filter-search-input-{{ data.id }}" placeholder="<?php esc_attr_e( 'Search themes&hellip;' ); ?>" aria-describedby="{{ data.id }}-live-search-desc" class="wp-filter-search">
-				<div class="search-icon" aria-hidden="true"></div>
-				<span id="{{ data.id }}-live-search-desc" class="screen-reader-text"><?php _e( 'The search results will be updated as you type.' ); ?></span>
+				<label for="wp-filter-search-input-{{ data.id }}"><?php _e( 'Search themes' ); ?></label>
+				<div class="search-form-input">
+					<input type="search" id="wp-filter-search-input-{{ data.id }}" aria-describedby="{{ data.id }}-live-search-desc" class="wp-filter-search">
+					<div class="search-icon" aria-hidden="true"></div>
+					<span id="{{ data.id }}-live-search-desc" class="screen-reader-text">
+						<?php
+						/* translators: Hidden accessibility text. */
+						_e( 'The search results will be updated as you type.' );
+						?>
+					</span>
+				</div>
 			</div>
+		<# } else { #>
+			<div class="themes-filter-container">
+				<label for="{{ data.id }}-themes-filter"><?php _e( 'Search themes' ); ?></label>
+				<div class="search-form-input">
+					<input type="search" id="{{ data.id }}-themes-filter" aria-describedby="{{ data.id }}-live-search-desc" class="wp-filter-search wp-filter-search-themes" />
+					<div class="search-icon" aria-hidden="true"></div>
+					<span id="{{ data.id }}-live-search-desc" class="screen-reader-text">
+						<?php
+						/* translators: Hidden accessibility text. */
+						_e( 'The search results will be updated as you type.' );
+						?>
+					</span>
+				</div>
+			</div>
+		<# } #>
+		<div class="filter-themes-wrapper">
+			<# if ( 'wporg' === data.action ) { #>
 			<button type="button" class="button feature-filter-toggle">
 				<span class="filter-count-0"><?php _e( 'Filter themes' ); ?></span><span class="filter-count-filters">
-				<?php
-				/* translators: %s: Number of filters selected. */
-				printf( __( 'Filter themes (%s)' ), '<span class="theme-filter-count">0</span>' );
-				?>
+					<?php
+					/* translators: %s: Number of filters selected. */
+					printf( __( 'Filter themes (%s)' ), '<span class="theme-filter-count">0</span>' );
+					?>
 				</span>
 			</button>
-		<# } else { #>
-			<div class="themes-filter-container">
-				<label for="{{ data.id }}-themes-filter" class="screen-reader-text"><?php _e( 'Search themes&hellip;' ); ?></label>
-				<input type="search" id="{{ data.id }}-themes-filter" placeholder="<?php esc_attr_e( 'Search themes&hellip;' ); ?>" aria-describedby="{{ data.id }}-live-search-desc" class="wp-filter-search wp-filter-search-themes" />
-				<div class="search-icon" aria-hidden="true"></div>
-				<span id="{{ data.id }}-live-search-desc" class="screen-reader-text"><?php _e( 'The search results will be updated as you type.' ); ?></span>
+			<# } #>
+			<div class="filter-themes-count">
+				<span class="themes-displayed">
+					<?php
+					/* translators: %s: Number of themes displayed. */
+					printf( __( '%s themes' ), '<span class="theme-count">0</span>' );
+					?>
+				</span>
 			</div>
-		<# } #>
-		<div class="filter-themes-count">
-			<span class="themes-displayed">
-				<?php
-				/* translators: %s: Number of themes displayed. */
-				printf( __( '%s themes' ), '<span class="theme-count">0</span>' );
-				?>
-			</span>
 		</div>
 		<?php
 	}
 
 	/**
-	 * Render the filter drawer portion of a themes section as a JS template.
+	 * Renders the filter drawer portion of a themes section as a JS template.
 	 *
-	 * The filter bar container is rendered by @see `render_template()`.
+	 * The filter bar container is rendered by {@see render_template()}.
 	 *
 	 * @since 4.9.0
 	 */
 	protected function filter_drawer_content_template() {
-		// @todo Use the .org API instead of the local core feature list.
-		// The .org API is currently outdated and will be reconciled when the .org themes directory is next redesigned.
+		/*
+		 * @todo Use the .org API instead of the local core feature list.
+		 * The .org API is currently outdated and will be reconciled when the .org themes directory is next redesigned.
+		 */
 		$feature_list = get_theme_feature_list( false );
 		?>
 		<# if ( 'wporg' === data.action ) { #>