主题激活时自动在“主菜单”位置设置菜单
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以上是关于主题激活时自动在“主菜单”位置设置菜单的主要内容,如果未能解决你的问题,请参考以下文章
猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单