--- a/wp/wp-includes/class-wp-customize-nav-menus.php Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-includes/class-wp-customize-nav-menus.php Fri Sep 05 18:40:08 2025 +0200
@@ -16,6 +16,7 @@
*
* @see WP_Customize_Manager
*/
+#[AllowDynamicProperties]
final class WP_Customize_Nav_Menus {
/**
@@ -561,10 +562,12 @@
'under' => __( 'Under %s' ),
/* translators: %s: Previous item name. */
'outFrom' => __( 'Out from under %s' ),
- /* translators: 1: Item name, 2: Item position, 3: Total number of items. */
- 'menuFocus' => __( '%1$s. Menu item %2$d of %3$d.' ),
- /* translators: 1: Item name, 2: Item position, 3: Parent item name. */
- 'subMenuFocus' => __( '%1$s. Sub item number %2$d under %3$s.' ),
+ /* translators: 1: Item name, 2: Item type, 3: Item index, 4: Total items. */
+ 'menuFocus' => __( 'Edit %1$s (%2$s, %3$d of %4$d)' ),
+ /* translators: 1: Item name, 2: Item type, 3: Item index, 4: Total items, 5: Item parent. */
+ 'subMenuFocus' => __( 'Edit %1$s (%2$s, sub-item %3$d of %4$d under %5$s)' ),
+ /* translators: 1: Item name, 2: Item type, 3: Item index, 4: Total items, 5: Item parent, 6: Item depth. */
+ 'subMenuMoreDepthFocus' => __( 'Edit %1$s (%2$s, sub-item %3$d of %4$d under %5$s, level %6$d)' ),
);
wp_localize_script( 'nav-menu', 'menus', $nav_menus_l10n );
}
@@ -936,10 +939,10 @@
* @param array $postarr {
* Post array. Note that post_status is overridden to be `auto-draft`.
*
- * @var string $post_title Post title. Required.
- * @var string $post_type Post type. Required.
- * @var string $post_name Post name.
- * @var string $post_content Post content.
+ * @type string $post_title Post title. Required.
+ * @type string $post_type Post type. Required.
+ * @type string $post_name Post name.
+ * @type string $post_content Post content.
* }
* @return WP_Post|WP_Error Inserted auto-draft post object or error.
*/
@@ -1075,7 +1078,7 @@
<button type="button" class="button-link item-add">
<span class="screen-reader-text">
<?php
- /* translators: 1: Title of a menu item, 2: Type of a menu item. */
+ /* translators: Hidden accessibility text. 1: Title of a menu item, 2: Type of a menu item. */
printf( __( 'Add to menu: %1$s (%2$s)' ), '{{ data.title || wp.customize.Menus.data.l10n.untitled }}', '{{ data.type_label }}' );
?>
</span>
@@ -1143,7 +1146,12 @@
<div id="available-menu-items" class="accordion-container">
<div class="customize-section-title">
<button type="button" class="customize-section-back" tabindex="-1">
- <span class="screen-reader-text"><?php _e( 'Back' ); ?></span>
+ <span class="screen-reader-text">
+ <?php
+ /* translators: Hidden accessibility text. */
+ _e( 'Back' );
+ ?>
+ </span>
</button>
<h3>
<span class="customize-action">
@@ -1157,13 +1165,23 @@
</div>
<div id="available-menu-items-search" class="accordion-section cannot-expand">
<div class="accordion-section-title">
- <label class="screen-reader-text" for="menu-items-search"><?php _e( 'Search Menu Items' ); ?></label>
- <input type="text" id="menu-items-search" placeholder="<?php esc_attr_e( 'Search menu items…' ); ?>" aria-describedby="menu-items-search-desc" />
- <p class="screen-reader-text" id="menu-items-search-desc"><?php _e( 'The search results will be updated as you type.' ); ?></p>
+ <label for="menu-items-search"><?php _e( 'Search Menu Items' ); ?></label>
+ <input type="text" id="menu-items-search" aria-describedby="menu-items-search-desc" />
+ <p class="screen-reader-text" id="menu-items-search-desc">
+ <?php
+ /* translators: Hidden accessibility text. */
+ _e( 'The search results will be updated as you type.' );
+ ?>
+ </p>
<span class="spinner"></span>
+ <div class="search-icon" aria-hidden="true"></div>
+ <button type="button" class="clear-results"><span class="screen-reader-text">
+ <?php
+ /* translators: Hidden accessibility text. */
+ _e( 'Clear Results' );
+ ?>
+ </span></button>
</div>
- <div class="search-icon" aria-hidden="true"></div>
- <button type="button" class="clear-results"><span class="screen-reader-text"><?php _e( 'Clear Results' ); ?></span></button>
<ul class="accordion-section-content available-menu-items-list" data-type="search"></ul>
</div>
<?php
@@ -1222,10 +1240,12 @@
<?php if ( 'post_type' === $available_item_type['type'] ) : ?>
<?php $post_type_obj = get_post_type_object( $available_item_type['object'] ); ?>
<?php if ( current_user_can( $post_type_obj->cap->create_posts ) && current_user_can( $post_type_obj->cap->publish_posts ) ) : ?>
- <div class="new-content-item">
- <label for="<?php echo esc_attr( 'create-item-input-' . $available_item_type['object'] ); ?>" class="screen-reader-text"><?php echo esc_html( $post_type_obj->labels->add_new_item ); ?></label>
- <input type="text" id="<?php echo esc_attr( 'create-item-input-' . $available_item_type['object'] ); ?>" class="create-item-input" placeholder="<?php echo esc_attr( $post_type_obj->labels->add_new_item ); ?>">
- <button type="button" class="button add-content"><?php _e( 'Add' ); ?></button>
+ <div class="new-content-item-wrapper">
+ <label for="<?php echo esc_attr( 'create-item-input-' . $available_item_type['object'] ); ?>"><?php echo esc_html( $post_type_obj->labels->add_new_item ); ?></label>
+ <div class="new-content-item">
+ <input type="text" id="<?php echo esc_attr( 'create-item-input-' . $available_item_type['object'] ); ?>" class="create-item-input">
+ <button type="button" class="button add-content"><?php _e( 'Add' ); ?></button>
+ </div>
</div>
<?php endif; ?>
<?php endif; ?>
@@ -1246,7 +1266,12 @@
<h4 class="accordion-section-title" role="presentation">
<?php _e( 'Custom Links' ); ?>
<button type="button" class="button-link" aria-expanded="false">
- <span class="screen-reader-text"><?php _e( 'Toggle section: Custom Links' ); ?></span>
+ <span class="screen-reader-text">
+ <?php
+ /* translators: Hidden accessibility text. */
+ _e( 'Toggle section: Custom Links' );
+ ?>
+ </span>
<span class="toggle-indicator" aria-hidden="true"></span>
</button>
</h4>
@@ -1322,7 +1347,7 @@
add_action( 'wp_enqueue_scripts', array( $this, 'customize_preview_enqueue_deps' ) );
add_filter( 'wp_nav_menu_args', array( $this, 'filter_wp_nav_menu_args' ), 1000 );
add_filter( 'wp_nav_menu', array( $this, 'filter_wp_nav_menu' ), 10, 2 );
- add_filter( 'wp_footer', array( $this, 'export_preview_data' ), 1 );
+ add_action( 'wp_footer', array( $this, 'export_preview_data' ), 1 );
add_filter( 'customize_render_partials_response', array( $this, 'export_partial_rendered_nav_menu_instances' ) );
}
@@ -1446,7 +1471,7 @@
(
! empty( $args['container'] )
||
- ( isset( $args['items_wrap'] ) && '<' === substr( $args['items_wrap'], 0, 1 ) )
+ ( isset( $args['items_wrap'] ) && str_starts_with( $args['items_wrap'], '<' ) )
)
);
$args['can_partial_refresh'] = $can_partial_refresh;
@@ -1533,7 +1558,7 @@
$exports = array(
'navMenuInstanceArgs' => $this->preview_nav_menu_instance_args,
);
- printf( '<script>var _wpCustomizePreviewNavMenusExports = %s;</script>', wp_json_encode( $exports ) );
+ wp_print_inline_script_tag( sprintf( 'var _wpCustomizePreviewNavMenusExports = %s;', wp_json_encode( $exports ) ) );
}
/**