Reputation: 13333
I want to add a <span>
in wordpress menu just after <a>
tag so that it should look like this
<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-4 current_page_item menu-item-13">
<a href="http://wordpress.org/"><span>Home</span></a>
</li>
Any help and suggestions will be appreciable.
Upvotes: 7
Views: 11415
Reputation: 13333
Hey thanks for your reply but I got it. It should be like this
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'link_before' => '<span>','link_after'=>'</span>' ) ); ?>
Upvotes: 12
Reputation: 317
It in the following file :
/wp-includes/nav-menu-template.php
html output starts on line 82
Let's be nice, here's the code, replace from line 82 to 109 :
$output .= $indent . '<li' . $id . $value . $class_names .'>';
$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 ) .'"' : '';
$item_output = $args->before;
$item_output .= '<a'. $attributes .'><span>';
$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
$item_output .= '</span></a>';
$item_output .= $args->after;
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
/**
* @see Walker::end_el()
* @since 3.0.0
*
* @param string $output Passed by reference. Used to append additional content.
* @param object $item Page data object. Not used.
* @param int $depth Depth of page. Not Used.
*/
function end_el(&$output, $item, $depth) {
$output .= "</li>\n";
}
}
Upvotes: -4