这是一个很重要的方法, 可以通过它去兼容老版本主题. 下面我们看看代码. 关键是 $args 也被传入 call_user_func 中. 例如, 我们将参数 'sort_column'=>'menu_order' 写入 wp_nav_menu 的参数, 那它同样会被传到 call_user_func 方法中. 如果 call_user_func 是 wp_page_menu 方法, 那么显示的页面列表将以认为赋予的序号来排序输出.
// 如果找不到指定菜单, 或者菜单不存在任何条目并没有指定自定义菜单, 使用 call_user_func 方法来进行处理 if ( ( !$menu || is_wp_error($menu) || ( isset($menu_items) && empty($menu_items) && !$args->theme_location ) ) && ( function_exists($args->fallback_cb) || is_callable( $args->fallback_cb ) ) ) return call_user_func( $args->fallback_cb, (array) $args );
$before
(字符串)(可选) 显示在每个菜单链接前的文本
默认值: None
$after
(字符串)(可选) 显示在每个菜单链接后的文本
默认值: None
$link_before
(字符串)(可选) 显示在每个菜单链接文本前的文本
默认值: None
$link_after
(字符串)(可选) 显示在每个菜单链接文本后的文本
默认值: None
我怀疑 Codex 对 $before 与 $link_before, $after 与 $link_after 的描述是不是倒过来了?
$depth
(整型)(可选) 显示菜单的深度, 当数值为 0 时显示所有
默认值: 0
$walker
(字符串)(可选) 自定义的遍历对象
默认值: None
$theme_locaton
(字符串)(可选) the location in the theme to be used--must be registered with register_nav_menu() in order to be selectable by the user
默认值: None
如果主题在 function.php 中登记了 3 个自定义菜单, 如下:
register_nav_menus(array('primary' => 'Primary Navigation')); register_nav_menus(array('secondary' => 'Secondary Navigation')); register_nav_menus(array('bottom' => 'Bottom Navigation'));
要调用 Secondary Navigation 这个导航菜单, 则可以在 header.php 文件里使用以下语句:
wp_nav_menu(array( 'theme_location' =>'secondary' ));
也就是说, 这是用来指定调用某个自定义菜单的.
您可能感兴趣的文章: