我创建了一个WordPress菜单:
$menu_id = wp_create_nav_menu('MyMenu');
并成功添加菜单项。它们出现在Appearance - > Menus中。
菜单列表底部是“菜单设置”,带有两个复选框。第一个是“自动添加...”,第二个是“主菜单(当前设置为:)”。
我需要代码来执行选中此框时发生的事情并保存菜单。
我使用Thesis-185作为主题。
答案 0 :(得分:0)
可以使用以下方式阅读这些复选框:
get_option('nav_menu_options')
“自动添加...” get_theme_mod( 'nav_menu_locations' );
用于“主菜单(当前设置为)” 有一个钩子可以更新导航菜单(wp_update_nav_menu
),但不幸的是there's a bug on the system,因为创建了两个相同的钩子。
我管理了一个难看的解决方法,只运行一次:
add_action( 'load-nav-menus.php', function()
{
if( isset( $_POST['save_menu'] ) )
{
global $my_hook_only_once;
$my_hook_only_once = false;
add_action( 'wp_update_nav_menu', function( $menu_id )
{
global $my_hook_only_once;
if( $my_hook_only_once )
return;
$nav_options = get_option('nav_menu_options');
$locations = get_theme_mod( 'nav_menu_locations' );
# Firephp logging
// my_log( $nav_options['auto_add'], 'Auto add' );
// my_log( $locations, 'Menu locations' );
$my_hook_only_once = true;
});
}
});