WP_Nav_Menu_Widget
클래스 구현을 보면 다음 코드가 표시됩니다.
function widget($args, $instance) {
// Get menu
$nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
if ( !$nav_menu )
return;
$instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
echo $args['before_widget'];
if ( !empty($instance['title']) )
echo $args['before_title'] . $instance['title'] . $args['after_title'];
wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) );
echo $args['after_widget'];
}
메뉴를 연결할 기회가 없음을 의미합니다. 따라서 wp_nav_menu
다음 코드 줄을 찾을 수있는 함수 구현을 살펴 봐야 합니다.
$defaults = array(
'menu' => '',
'container' => 'div',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0,
'walker' => '',
'theme_location' => ''
);
$args = wp_parse_args( $args, $defaults );
$args = apply_filters( 'wp_nav_menu_args', $args );
$args = (object) $args;
여기서 wp_nav_menu
함수에 전달 된 모든 인수를 바꿀 수 있음을 알 수 있습니다. 따라서 필요한 것은 워커를 탐색 메뉴에 추가하는 고유 한 후크 처리기를 만드는 것입니다. 다음과 같이 간단 할 수 있습니다.
function myplugin_custom_walker( $args ) {
return array_merge( $args, array(
'walker' => new My_Custom_Walker(),
// another setting go here ...
) );
}
add_filter( 'wp_nav_menu_args', 'myplugin_custom_walker' );
'walker' => new Walker_Nav_Menu()
하나 개의 메뉴에 대한 워드 프레스 기본 워커가되기 위해 다시 재정의 내 특정 메뉴의 인수,하지만 슬프게도이되지 작동하지.