--- a/wp/wp-includes/class-walker-nav-menu.php Wed Sep 21 18:19:35 2022 +0200
+++ b/wp/wp-includes/class-walker-nav-menu.php Tue Sep 27 16:37:53 2022 +0200
@@ -30,7 +30,7 @@
*
* @since 3.0.0
* @todo Decouple this.
- * @var array
+ * @var string[]
*
* @see Walker::$db_fields
*/
@@ -106,16 +106,21 @@
*
* @since 3.0.0
* @since 4.4.0 The {@see 'nav_menu_item_args'} filter was added.
+ * @since 5.9.0 Renamed `$item` to `$data_object` and `$id` to `$current_object_id`
+ * to match parent class for PHP 8 named parameter support.
*
* @see Walker::start_el()
*
- * @param string $output Used to append additional content (passed by reference).
- * @param WP_Post $item Menu item data object.
- * @param int $depth Depth of menu item. Used for padding.
- * @param stdClass $args An object of wp_nav_menu() arguments.
- * @param int $id Current item ID.
+ * @param string $output Used to append additional content (passed by reference).
+ * @param WP_Post $data_object Menu item data object.
+ * @param int $depth Depth of menu item. Used for padding.
+ * @param stdClass $args An object of wp_nav_menu() arguments.
+ * @param int $current_object_id Optional. ID of the current menu item. Default 0.
*/
- public function start_el( &$output, $item, $depth = 0, $args = null, $id = 0 ) {
+ public function start_el( &$output, $data_object, $depth = 0, $args = null, $current_object_id = 0 ) {
+ // Restores the more descriptive, specific name for use within this method.
+ $menu_item = $data_object;
+
if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
$t = '';
$n = '';
@@ -125,19 +130,19 @@
}
$indent = ( $depth ) ? str_repeat( $t, $depth ) : '';
- $classes = empty( $item->classes ) ? array() : (array) $item->classes;
- $classes[] = 'menu-item-' . $item->ID;
+ $classes = empty( $menu_item->classes ) ? array() : (array) $menu_item->classes;
+ $classes[] = 'menu-item-' . $menu_item->ID;
/**
* Filters the arguments for a single nav menu item.
*
* @since 4.4.0
*
- * @param stdClass $args An object of wp_nav_menu() arguments.
- * @param WP_Post $item Menu item data object.
- * @param int $depth Depth of menu item. Used for padding.
+ * @param stdClass $args An object of wp_nav_menu() arguments.
+ * @param WP_Post $menu_item Menu item data object.
+ * @param int $depth Depth of menu item. Used for padding.
*/
- $args = apply_filters( 'nav_menu_item_args', $args, $item, $depth );
+ $args = apply_filters( 'nav_menu_item_args', $args, $menu_item, $depth );
/**
* Filters the CSS classes applied to a menu item's list item element.
@@ -145,12 +150,12 @@
* @since 3.0.0
* @since 4.1.0 The `$depth` parameter was added.
*
- * @param string[] $classes Array of the CSS classes that are applied to the menu item's `<li>` element.
- * @param WP_Post $item The current menu item.
- * @param stdClass $args An object of wp_nav_menu() arguments.
- * @param int $depth Depth of menu item. Used for padding.
+ * @param string[] $classes Array of the CSS classes that are applied to the menu item's `<li>` element.
+ * @param WP_Post $menu_item The current menu item object.
+ * @param stdClass $args An object of wp_nav_menu() arguments.
+ * @param int $depth Depth of menu item. Used for padding.
*/
- $class_names = implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
+ $class_names = implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $menu_item, $args, $depth ) );
$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
/**
@@ -159,26 +164,26 @@
* @since 3.0.1
* @since 4.1.0 The `$depth` parameter was added.
*
- * @param string $menu_id The ID that is applied to the menu item's `<li>` element.
- * @param WP_Post $item The current menu item.
- * @param stdClass $args An object of wp_nav_menu() arguments.
- * @param int $depth Depth of menu item. Used for padding.
+ * @param string $menu_id The ID that is applied to the menu item's `<li>` element.
+ * @param WP_Post $menu_item The current menu item.
+ * @param stdClass $args An object of wp_nav_menu() arguments.
+ * @param int $depth Depth of menu item. Used for padding.
*/
- $id = apply_filters( 'nav_menu_item_id', 'menu-item-' . $item->ID, $item, $args, $depth );
+ $id = apply_filters( 'nav_menu_item_id', 'menu-item-' . $menu_item->ID, $menu_item, $args, $depth );
$id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
$output .= $indent . '<li' . $id . $class_names . '>';
$atts = array();
- $atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : '';
- $atts['target'] = ! empty( $item->target ) ? $item->target : '';
- if ( '_blank' === $item->target && empty( $item->xfn ) ) {
+ $atts['title'] = ! empty( $menu_item->attr_title ) ? $menu_item->attr_title : '';
+ $atts['target'] = ! empty( $menu_item->target ) ? $menu_item->target : '';
+ if ( '_blank' === $menu_item->target && empty( $menu_item->xfn ) ) {
$atts['rel'] = 'noopener';
} else {
- $atts['rel'] = $item->xfn;
+ $atts['rel'] = $menu_item->xfn;
}
- $atts['href'] = ! empty( $item->url ) ? $item->url : '';
- $atts['aria-current'] = $item->current ? 'page' : '';
+ $atts['href'] = ! empty( $menu_item->url ) ? $menu_item->url : '';
+ $atts['aria-current'] = $menu_item->current ? 'page' : '';
/**
* Filters the HTML attributes applied to a menu item's anchor element.
@@ -195,11 +200,11 @@
* @type string $href The href attribute.
* @type string $aria-current The aria-current attribute.
* }
- * @param WP_Post $item The current menu item.
- * @param stdClass $args An object of wp_nav_menu() arguments.
- * @param int $depth Depth of menu item. Used for padding.
+ * @param WP_Post $menu_item The current menu item object.
+ * @param stdClass $args An object of wp_nav_menu() arguments.
+ * @param int $depth Depth of menu item. Used for padding.
*/
- $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
+ $atts = apply_filters( 'nav_menu_link_attributes', $atts, $menu_item, $args, $depth );
$attributes = '';
foreach ( $atts as $attr => $value ) {
@@ -210,19 +215,19 @@
}
/** This filter is documented in wp-includes/post-template.php */
- $title = apply_filters( 'the_title', $item->title, $item->ID );
+ $title = apply_filters( 'the_title', $menu_item->title, $menu_item->ID );
/**
* Filters a menu item's title.
*
* @since 4.4.0
*
- * @param string $title The menu item's title.
- * @param WP_Post $item The current menu item.
- * @param stdClass $args An object of wp_nav_menu() arguments.
- * @param int $depth Depth of menu item. Used for padding.
+ * @param string $title The menu item's title.
+ * @param WP_Post $menu_item The current menu item object.
+ * @param stdClass $args An object of wp_nav_menu() arguments.
+ * @param int $depth Depth of menu item. Used for padding.
*/
- $title = apply_filters( 'nav_menu_item_title', $title, $item, $args, $depth );
+ $title = apply_filters( 'nav_menu_item_title', $title, $menu_item, $args, $depth );
$item_output = $args->before;
$item_output .= '<a' . $attributes . '>';
@@ -240,26 +245,27 @@
* @since 3.0.0
*
* @param string $item_output The menu item's starting HTML output.
- * @param WP_Post $item Menu item data object.
+ * @param WP_Post $menu_item Menu item data object.
* @param int $depth Depth of menu item. Used for padding.
* @param stdClass $args An object of wp_nav_menu() arguments.
*/
- $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
+ $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $menu_item, $depth, $args );
}
/**
* Ends the element output, if needed.
*
* @since 3.0.0
+ * @since 5.9.0 Renamed `$item` to `$data_object` to match parent class for PHP 8 named parameter support.
*
* @see Walker::end_el()
*
- * @param string $output Used to append additional content (passed by reference).
- * @param WP_Post $item Page data object. Not used.
- * @param int $depth Depth of page. Not Used.
- * @param stdClass $args An object of wp_nav_menu() arguments.
+ * @param string $output Used to append additional content (passed by reference).
+ * @param WP_Post $data_object Menu item data object. Not used.
+ * @param int $depth Depth of page. Not Used.
+ * @param stdClass $args An object of wp_nav_menu() arguments.
*/
- public function end_el( &$output, $item, $depth = 0, $args = null ) {
+ public function end_el( &$output, $data_object, $depth = 0, $args = null ) {
if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
$t = '';
$n = '';