主题激活时自动在“主菜单”位置设置菜单

Posted

技术标签:

【中文标题】主题激活时自动在“主菜单”位置设置菜单【英文标题】:Automatically setting a menu on location 'primary menu' on theme activation 【发布时间】:2013-10-24 10:59:03 【问题描述】:

目前我正在制作这个菜单: (函数.php)

$menuname = 'Top Menu';
$menu_exists = wp_get_nav_menu_object( $menuname );

if( !$menu_exists)
$menu_id = wp_create_nav_menu($menuname);

wp_update_nav_menu_item($menu_id, 0, array(
    'menu-item-title' =>  __('Programme'),
    'menu-item-classes' => 'programme',
    'menu-item-url' => home_url( '/programme/' ), 
    'menu-item-status' => 'publish'));

wp_update_nav_menu_item($menu_id, 0, array(
    'menu-item-title' =>  __('Speakers'),
    'menu-item-classes' => 'speakers',
    'menu-item-url' => home_url( '/speakers/' ), 
    'menu-item-status' => 'publish'));

当我激活我的主题时,我想做的是: (来源:cubeupload.com)

自动选择“主菜单”框,因此当我启动此主题时,我会创建一个菜单并将其设为主菜单。

如何做到这一点?

【问题讨论】:

【参考方案1】:

您可以通过以下方式以编程方式设置菜单的theme_location

$locations = get_theme_mod('nav_menu_locations');
$locations['primary-menu'] = $term_id_of_menu;
set_theme_mod( 'nav_menu_locations', $locations );

将此添加到您的functions.php

【讨论】:

啊,不,这完全改变了数据库中的菜单。 我添加了一个基于这个答案的答案 - 这里有更多功能:Set navigation to be active for menu display location

以上是关于主题激活时自动在“主菜单”位置设置菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何设置firefox缓存自动清理

猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单

我在BIOS主菜单把键盘keyboard~~~ 设置成Disabled键盘不能用了?

WordPress插件双标题使用教程

Superfish主菜单不垂直填充块

在主菜单下的标题中添加徽标