如何通过脚本将WP3.0自定义导航菜单分配给主题的导航菜单位置?

时间:2011-04-05 作者:Scott B

我正在插件中使用此脚本动态创建一个新的自定义菜单,并为其分配一个页面。。。

$menu_id = wp_create_nav_menu( \'header-menu\' );
$menu = array( \'menu-item-type\' => \'custom\', \'menu-item-url\' => get_home_url(\'/\'),\'menu-item-title\' => \'Home\', \'menu-item-status\' => \'publish\' );
wp_update_nav_menu_item( $menu_id, 0, $menu );
这很有效。然而,我一直坚持的是如何将这个菜单连接到我的主题之一的“菜单位置”。因为我正在我的主题功能中注册一个名为“标题菜单”的导航位置。php,我认为上面的代码调用wp\\u create\\u nav\\u menu(“header menu”)会将我的自定义菜单挂接到主题中定义为“header menu”的位置,但不是这样。

例如,“我的主题”注册了两个菜单位置。。。

register_nav_menus(
  array(\'header-menu\' => __( \'My Header Menu\' ), 
 \'footer-menu\' => __( \'Footer Menu\' ))
);
如何将使用wp\\u create\\u nav\\u菜单(“Header Menu”)创建的“Header Menu”挂接到我在主题中注册的“My Header Menu”位置?我肯定答案在导航菜单的某个地方。php,但我找不到它。

也就是说,我可以在WordPress“外观>菜单”管理器中手动执行此操作,并在“主题位置>主导航菜单”下选择“标题菜单”,然后单击“保存”。我正试着用脚本来做这件事。

1 个回复
SO网友:Matthew Boynes

如果你已经找到了一个适合你的答案,我鼓励你把它贴在这里,让其他人看到。如果没有,我将使用自定义过滤器或操作。

在主题中输出菜单的位置,可以使用apply_filtersdo_action 要触发所需的覆盖,请在插件中挂接该操作/过滤器以输出覆盖。这是一种更无损于完成相同任务的方法,因为这样就不会覆盖菜单关联。

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph