BP_Walker_Nav_Menu::start_el( string $output, object $item, int $depth, array $args = array(), int $id )
Display the current <li> that we are on.
Description
See also
- Walker::start_el(): for complete description of parameters.
Parameters
- $output
-
(Required) Passed by reference. Used to append additional content.
- $item
-
(Required) Menu item data object.
- $depth
-
(Required) Depth of menu item. Used for padding. Optional, defaults to 0.
- $args
-
(Optional) See Walker::start_el().
Default value: array()
- $id
-
(Optional) Menu item ID. Optional.
Source
File: bp-core/classes/class-bp-walker-nav-menu.php
public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
// If we're someway down the tree, indent the HTML with the appropriate number of tabs.
$indent = $depth ? str_repeat( "\t", $depth ) : '';
/**
* Filters the classes to be added to the nav menu markup.
*
* @since BuddyPress 1.7.0
*
* @param array $value Array of classes to be added.
* @param object $item Menu item data object.
* @param array $args Array of arguments for the item.
*/
$class_names = join( ' ', apply_filters( 'bp_nav_menu_css_class', array_filter( $item->class ), $item, $args ) );
$class_names = ! empty( $class_names ) ? ' class="' . esc_attr( $class_names ) . '"' : '';
// Add HTML ID
$id = sanitize_html_class( $item->css_id . '-personal-li' ); // Backpat with BP pre-1.7.
/**
* Filters the value to be used for the nav menu ID attribute.
*
* @since BuddyPress 1.7.0
*
* @param string $id ID attribute to be added to the menu item.
* @param object $item Menu item data object.
* @param array $args Array of arguments for the item.
*/
$id = apply_filters( 'bp_nav_menu_item_id', $id, $item, $args );
$id = ! empty( $id ) ? ' id="' . esc_attr( $id ) . '"' : '';
// Opening tag; closing tag is handled in Walker_Nav_Menu::end_el().
$output .= $indent . '<li' . $id . $class_names . '>';
// Add href attribute.
$attributes = ! empty( $item->link ) ? ' href="' . esc_url( $item->link ) . '"' : '';
// Construct the link.
$item_output = $args->before;
$item_output .= '<a' . $attributes . '>';
/**
* Filters the link text to be added to the item output.
*
* @since BuddyPress 1.7.0
*
* @param string $name Item text to be applied.
* @param int $value Post ID the title is for.
*/
$item_output .= $args->link_before . apply_filters( 'the_title', $item->name, 0 ) . $args->link_after;
$item_output .= '</a>';
$item_output .= $args->after;
/**
* Filters the final result for the menu item.
*
* @since BuddyPress 1.7.0
*
* @param string $item_output Constructed output for the menu item to append to output.
* @param object $item Menu item data object.
* @param int $depth Depth of menu item. Used for padding.
* @param array $args Array of arguments for the item.
*/
$output .= apply_filters( 'bp_walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.7.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.