¿Alguien sabe cómo agregar un separador de menú de administrador? Encontré esto pero no ayudó.
¿Algunas ideas?
admin
admin-menu
usuario1147
fuente
fuente
Respuestas:
Aquí hay una manera rápida y sucia de obtener lo que quieres.
Fondo
WordPress almacena las secciones del menú de administración en una matriz global llamada
$menu
. Para agregar un separador, agrega un elemento a la$menu
matriz utilizando un índice que se encuentra entre los índices de las opciones que desea separar.Usando la
add_admin_menu_separator()
funciónAsí que he escrito una función para encapsular la lógica de esto que llamé
add_admin_menu_separator()
. Deberá elegir un número de índice de matriz que sea más alto que la opción después de la cual desea agregar un separador, y luego llamar a la función queadd_admin_menu_separator()
pasa dicho índice como su parámetro.Por ejemplo:
La
add_admin_menu_separator()
función en síAquí está la definición de la función
add_admin_menu_separator()
que puede copiar en elfunctions.php
archivo de su tema . Sí, es arcano, pero también lo es el código que crea y usa la$menu
matriz global . (Afortunadamente, los planes son desaprobarlo, pero probablemente serán unos pocos años).Encontrar el índice
$menu
que necesitasPara averiguar qué número de índice que necesita se puede hacer una
var_dump()
de$GLOBALS['menu']
desde dentro de unadmin_init
gancho. Aquí hay un poco de código que puede colocarfunctions.php
temporalmente en el archivo de su tema para ver cuáles son los valores. Esto solo funcionará cuando solicite una URL que comience con/wp-admin/
(pero asegúrese de hacerlo con FTP y no con el editor de temas incorporado o perderá el acceso a su sitio, ¡al menos hasta que obtenga acceso FTP alfunctions.php
archivo de su tema !) :Ver también:
Por cierto, puede encontrar estos enlaces útiles en general para trabajar con menús de administración:
wp-admin-menu-classes.php
Aunque mis clases de menú de administrador actualmente no ofrecen una manera fácil de agregar separadores, creo que ahora lo agregaré cuando tenga tiempo.
fuente
Es facil como:
Nota: La posición del separador predeterminada (
$menu[4]
) puede ser diferente según la configuración que usted (o sus complementos) haya realizado antes de este enlace.Por supuesto, también puede ajustar la introspección
menu-top-first
ymenu-top-last
clases.fuente
Hubo algunos problemas con los separadores que no se agregaron, se debió a la forma en que Wordpress elimina los separadores duplicados. Agregar
ksort($menu);
al final de la función corrigió el problema.fuente
Esto se basa en la respuesta de MastaBaba, pero no reemplaza nada en la posición que especifique, simplemente agrega el separador después.
También utiliza una función anónima, por lo que solo es compatible con PHP versión 5.3 y superior.
fuente
Es un poco difícil determinar qué estás tratando de hacer, pero creo que estás buscando agregar una entrada de nivel superior en el menú de administración de WordPress.
Consulte esta documentación en el Codex de WordPress.
En resumen, está buscando el uso de la
add_menu_page()
función, que toma una serie de argumentos y muestra un elemento adicional en el menú administrativo como hermano de "Panel de control", "Publicaciones", "Medios", etc.Espero haberlo hecho bien. :-)
fuente
add_menu_page()
.El siguiente anuncio es una acción para Wordpress que se ejecuta cuando se muestra el menú de administración. El menú de administración es una matriz y todo lo que está haciendo aquí es agregar un elemento de matriz que define un separador, en la posición que especifique.
Desde aquí :
Tenga en cuenta que, aunque esto se parece bastante a la respuesta actualmente aceptada, la respuesta actualmente aceptada no funcionó para mí (y, a juzgar por los comentarios, para varios otros).
fuente