【发布时间】:2015-07-19 21:19:25
【问题描述】:
所以,我创建了一个自定义 walker 类,允许我将下拉菜单项包装在一个容器中,以便我可以添加自定义背景并控制样式。一长串原因,为什么,我和我的团队刚刚决定我们这样做。但是,现在需要将 ONE 元素的下拉列表包装在 a 标签中以链接到赞助商。当然,我可以操纵自定义 Walker,但这会将链接添加到所有目标元素。
所以我想知道是否可以只针对我需要的一个下拉菜单。假设是 li#menu-item-18
这是我的自定义 Walker 代码
class My_Custom_Walker_Class extends Walker_Nav_Menu {
function start_lvl( &$output, $depth ) {
$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
$output .= $indent . '<ul class="sub-menu"><div class="sub-menu-child">';
}
function end_lvl( &$output, $depth ) {
$indent = str_repeat("\t", $depth);
$output .= $indent . '</div></ul>';
}
}
/**
* Add the Menu_With_Data_Attr walker to the wp_nav_menu() used by genesis_do_nav()
*/
add_filter( 'wp_nav_menu_args', function( $args ){
if( isset( $args['menu_class'] ) && 'menu genesis-nav-menu menu-primary' === $args['menu_class'] ) {
if( class_exists( 'My_Custom_Walker_Class' ) ) {
$args['walker'] = new My_Custom_Walker_Class();
}
}
return $args;
});
【问题讨论】:
标签: php wordpress drop-down-menu submenu