以编程方式替换现有菜单

时间:2017-12-16 作者:Peter Cheung

我以编程方式创建自己的菜单:

    $menu_id = wp_create_nav_menu($menu_name);
    wp_update_nav_menu_item($menu_id, 0, array(
        \'menu-item-title\' =>  __(\'Home\'),
        \'menu-item-classes\' => \'home\',
        \'menu-item-url\' => home_url( \'/\' ),
        \'menu-item-status\' => \'publish\'));

    wp_update_nav_menu_item($menu_id, 0, array(
        \'menu-item-title\' =>  __(\'Custom Page\'),
        \'menu-item-url\' => home_url( \'/custom/\' ),
        \'menu-item-status\' => \'publish\'));

    wp_update_nav_menu_item($menu_id, 0, array(
        \'menu-item-title\' =>  __(\'SHIT\'),
        \'menu-item-url\' => home_url( \'/custom/\' ),
        \'menu-item-status\' => \'publish\'));
现在我可以用现有的菜单替换我的菜单了。我应该调用什么代码?感谢Peter

1 个回复
最合适的回答,由SO网友:Frank P. Walentynowicz 整理而成

将此代码添加到functions.php 您当前的主题(最好是子主题):

$menuName = \'Your menu name\';
$locationID = \'primary\';
$myMenu = get_term_by(\'name\', $menuName, \'nav_menu\');
$locations = get_theme_mod(\'nav_menu_locations\');
if($myMenu->term_id !== $locations[$locationID]) {
    $locations[$locationID] = $myMenu->term_id;
    set_theme_mod(\'nav_menu_locations\', $locations);
}
记住更改前两个变量的值以符合您的要求。

结束

相关推荐

Use menus with anchors

我有一个CPT归档页面,我想创建一个导航菜单,该菜单将跳转到表单中的锚定<a name=\"post-slug\" http=\"{the permalink goes here}>The CPT Title</a>我已经能够在模板文件中创建锚定,所以这不是问题对于页面顶部的链接本身,我可以手动创建它们,也可以使用WordPress菜单系统中的自定义链接。。。。但是有很多,所以我宁愿尝试在WordPress菜单系统中创建一个常规菜单。问题是,我需要以某种方式调整它的输出,以更改常规