Kumi
7ab01eec96
Cleaned up unnecessary blank lines in the Bootstrap Navwalker class. This enhances code readability and maintains consistent coding style throughout the file. No functional changes were made.
66 lines
2.7 KiB
PHP
66 lines
2.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* WP_Bootstrap_Navwalker class.
|
|
*
|
|
* @extends Walker_Nav_Menu
|
|
*/
|
|
class WP_Bootstrap_Navwalker extends Walker_Nav_Menu
|
|
{
|
|
|
|
// Add classes to ul sub-menus
|
|
function start_lvl(&$output, $depth = 0, $args = array())
|
|
{
|
|
$indent = str_repeat("\t", $depth);
|
|
$output .= "\n$indent<ul class=\"dropdown-menu\">\n";
|
|
}
|
|
|
|
// Add main/sub classes to li's and links
|
|
function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0)
|
|
{
|
|
$indent = ($depth) ? str_repeat("\t", $depth) : '';
|
|
|
|
$li_attributes = '';
|
|
$class_names = $value = '';
|
|
|
|
$classes = empty($item->classes) ? array() : (array) $item->classes;
|
|
$classes[] = (isset($args->walker) && $args->walker->has_children) ? 'dropdown' : '';
|
|
$classes[] = 'nav-item';
|
|
$classes[] = 'nav-item-' . $item->ID;
|
|
if ($depth && isset($args->walker) && $args->walker->has_children) {
|
|
$classes[] = 'dropdown-submenu';
|
|
}
|
|
|
|
$class_names = join(' ', apply_filters('nav_menu_css_class', array_filter($classes), $item, $args));
|
|
$class_names = ' class="' . esc_attr($class_names) . '"';
|
|
|
|
$id = apply_filters('nav_menu_item_id', 'nav-menu-item-' . $item->ID, $item, $args);
|
|
$id = $id ? ' id="' . esc_attr($id) . '"' : '';
|
|
|
|
$output .= $indent . '<li' . $id . $value . $class_names . $li_attributes . '>';
|
|
|
|
$attributes = !empty($item->attr_title) ? ' title="' . esc_attr($item->attr_title) . '"' : '';
|
|
$attributes .= !empty($item->target) ? ' target="' . esc_attr($item->target) . '"' : '';
|
|
$attributes .= !empty($item->xfn) ? ' rel="' . esc_attr($item->xfn) . '"' : '';
|
|
$attributes .= !empty($item->url) ? ' href="' . esc_attr($item->url) . '"' : '';
|
|
|
|
$attributes .= (isset($args->walker) && $args->walker->has_children) ? ' class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"' : ' class="nav-link"';
|
|
|
|
$item_output = isset($args->before) ? $args->before : '';
|
|
$item_output .= '<a' . $attributes . '>';
|
|
$item_output .= (isset($args->link_before) ? $args->link_before : '') . apply_filters('the_title', $item->title, $item->ID) . (isset($args->link_after) ? $args->link_after : '');
|
|
$item_output .= '</a>';
|
|
$item_output .= isset($args->after) ? $args->after : '';
|
|
|
|
$output .= apply_filters('walker_nav_menu_start_el', $item_output, $item, $depth, $args);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Register Custom Navigation Walker
|
|
*/
|
|
function register_navwalker()
|
|
{
|
|
require_once get_template_directory() . '/class-wp-bootstrap-navwalker.php';
|
|
}
|
|
add_action('after_setup_theme', 'register_navwalker');
|