WordPress实现wp_nav_menu a标签跳转

wpnavmenu  方法里没有提供直接修改a标签属性的方法,导致连都做不到,

这里提供一种方式来实现修改a标签属性

最笨的一种方法,wpnavmenu引用的模版在wp-include/nav-menu-template.php,直接对a标签添加target= ‘black’就行,这种方式也可以用来修改二级菜单submenu

这里提够一种更灵活的方式

用到了wpnavmenu里面的walker参数

在用到wpnavmenu的php文件里定义以下类

/** * 自定义Walker用于实现跳转 * Class CustomWalkerNavMenu */ class CustomWalkerNavMenu extends WalkerNavMenu{ public function startel(&$output, $item, $depth = 0, $args = array(), $id = 0) { $item->target = 'black'; parent::start_el($output, $item, $depth, $args, $id); // TODO: Change the autogenerated stub } }

wp_nav_menu(array( 'themelocation'=>'friend-link', 'container'=>'div', 'containerclass'=>'editorChoice content-box', 'fallbackcb' => 'wppagemenu', 'itemswrap'=>'

友情链接

    %3$s
', 'echo'=>true, 'walker'=>new CustomWalkerNav_Menu(), ));

原理事通过集成wordpress默认的模板类,重写实现a属性的方法,添加target属性,然后对walker属性直接新建一个对象就ok了