1

我创建了一个 WordPress 菜单:

$menu_id = wp_create_nav_menu('MyMenu');

并成功添加菜单项。它们正确显示在外观-> 菜单中。

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

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

我使用 Thesis-185 作为主题。

4

1 回答 1

0

可以使用以下方法读取这些复选框:

  • get_option('nav_menu_options')对于“自动添加...”
  • get_theme_mod( 'nav_menu_locations' );主菜单(当前设置为)”

导航菜单更新时有一个挂钩 ( wp_update_nav_menu),但不幸的是,系统上有一个错误,因为创建了两个相同的挂钩。

我已经管理了一个丑陋的解决方法,只运行一次:

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;
        });
    }
});
于 2014-05-09T11:40:45.857 回答