Alguém sabe como adicionar um separador de menus de administração? Eu encontrei isso, mas não ajudou.
Alguma ideia?
admin
admin-menu
user1147
fonte
fonte
Respostas:
Aqui está uma maneira rápida e suja de obter o que deseja.
fundo
O WordPress armazena seções do menu de administração em uma matriz global chamada
$menu
. Para adicionar um separador, você adiciona um elemento à$menu
matriz usando um índice entre os índices das opções que deseja separar.Usando a
add_admin_menu_separator()
funçãoEntão, eu escrevi uma função para encapsular a lógica para isso que chamei
add_admin_menu_separator()
. Você precisará escolher um número de índice da matriz que seja mais alto do que a opção após a qual deseja adicionar um separador e chamar a função queadd_admin_menu_separator()
passa o referido índice como seu parâmetro.Por exemplo:
A
add_admin_menu_separator()
própria funçãoAqui está a definição da função
add_admin_menu_separator()
que você pode copiar nofunctions.php
arquivo do seu tema . Sim, é misterioso, mas também o código que cria e usa a$menu
matriz global . (Os planos são para acabar com isso, felizmente, mas isso provavelmente vai levar alguns anos.)Localizando o índice em
$menu
que você precisaPara descobrir o número de índice que você precisa você pode fazer uma da partir de um gancho. Aqui está um pouco de código que você pode soltar temporariamente no arquivo do seu tema para ver quais são os valores. Isso funcionará apenas ao solicitar um URL que comece com (mas certifique-se de usar o FTP e não o editor de temas embutido, ou você perderá o acesso ao seu site, pelo menos até obter acesso FTP ao arquivo do tema !) :
var_dump()
$GLOBALS['menu']
admin_init
functions.php
/wp-admin/
functions.php
Veja também:
BTW, você pode achar esses links úteis em geral para trabalhar com menus de administração:
wp-admin-menu-classes.php
Embora minhas classes de menu do administrador atualmente não ofereçam uma maneira fácil de adicionar separadores, acho que agora adicionarei isso quando tiver tempo.
fonte
É fácil como:
Nota: A posição padrão do separador (
$menu[4]
) pode ser diferente dependendo da configuração que você (ou seus plug-ins) fez antes deste gancho.Obviamente, você também pode ajustar a introspecção
menu-top-first
emenu-top-last
classes.fonte
Teve alguns problemas com os separadores não serem adicionados, foi devido à maneira como o wordpress remove separadores duplicados. A adição
ksort($menu);
à parte inferior da função corrigiu o problema.fonte
Isso se baseia na resposta do MastaBaba, mas não substitui nada na posição especificada - apenas adiciona o separador posteriormente.
Também usa uma função anônima, por isso é compatível apenas com o PHP versão 5.3 e superior.
fonte
É um pouco difícil determinar o que você está tentando fazer, mas acho que você deseja adicionar uma entrada de nível superior no menu de administração do WordPress.
Veja esta documentação no WordPress Codex.
Em resumo, você está procurando o uso da
add_menu_page()
função, que usa vários argumentos e exibe um item adicional no menu administrativo como um irmão de "Painel", "Postagens", "Mídia" etc.Espero ter acertado. :-)
fonte
add_menu_page()
.A seguir, anúncios para o Wordpress uma ação que é executada quando o menu do administrador é renderizado. O menu admin é uma matriz e tudo o que você está fazendo aqui é adicionar um elemento da matriz que define um separador, na posição que você especificar.
A partir daqui :
Observe que, embora isso se assemelhe à resposta atualmente aceita, a resposta atualmente aceita não funcionou para mim (e, a julgar pelos comentários, para várias outras).
fonte