激活WordPress菜单

时间:2014-04-30 23:09:43

标签: wordpress wordpress-thesis-theme

我创建了一个WordPress菜单:

$menu_id = wp_create_nav_menu('MyMenu');

并成功添加菜单项。它们出现在Appearance - > Menus中。

菜单列表底部是“菜单设置”,带有两个复选框。第一个是“自动添加...”,第二个是“主菜单(当前设置为:)”。

我需要代码来执行选中此框时发生的事情并保存菜单。

我使用Thesis-185作为主题。

1 个答案:

答案 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;
        });
    }
});