Remover metaboxes inutilizáveis na tela de gerenciamento do menu de navegação

4

Quando você visita wp-admin/nav-menus.php e não há menu, você obtém um conjunto de metaboxes que você não pode usar. A única coisa que eles fazem é desviar a atenção da caixa de diálogo Criar menu .

Euqueroesconderessascaixasatéquehajaummenu.

Como posso fazer isso?

    
por fuxia 02.01.2013 / 09:30

1 resposta

4

Existem duas variáveis globais importantes em wp-admin/nav-menus.php :

  • $nav_menus é uma matriz de todos os menus disponíveis, preenchidos com wp_get_nav_menus() .
  • $wp_meta_boxes['nav-menus'] é uma matriz de todos os metaboxes disponíveis para esta tela.

Podemos conectar em admin_head-nav-menus.php , uma ação chamada depois que a primeira variável foi configurada, e mudar a segunda variável:

add_action( 'admin_head-nav-menus.php', 't5_hide_dead_menu_metaboxes' );

/**
 * Remove metaboxes for menu items when no menu exists.
 *
 * @wp-hook admin_head-nav-menus.php
 * @return  void
 */
function t5_hide_dead_menu_metaboxes()
{
    empty ( $GLOBALS['nav_menus'] )
        and $GLOBALS['wp_meta_boxes']['nav-menus'] = array ();
}

Faça o download como plugin T5 Esconda os metaboxes do menu morto do GitHub.

Informações adicionais:

Depois de remover as caixas meta, a tela parece um pouco estranha. Poderíamos alterar um pouco o gancho inicial e adicionar alguns estilos para melhorar a aparência. Então nosso gancho poderia ser:

/**
 * Remove metaboxes for menu items when no menu exists.
 *
 * @wp-hook admin_head-nav-menus.php
 * @return  void
 */
function t5_hide_dead_menu_metaboxes()
{
    if ( empty( $GLOBALS['nav_menus'] ) ) {
        $GLOBALS['wp_meta_boxes']['nav-menus'] = array ();
        echo '<style> #nav-menus-frame { margin-left: 0 !important; padding-top: 20px; } </style>';
    }
}

Em seguida, a tela ficará mais natural:

    
por fuxia 02.01.2013 / 09:30