Hola, encontramos la solución a lo que buscabas, deslízate y la verás a continuación.
Solución:
Aquí hay una manera rápida y sucia de conseguir lo que quieres.
Fondo
WordPress almacena las secciones del menú de administración en un global array llamó $menu
. Para agregar un separador, agregue un elemento al $menu
array utilizando un índice que está entre los índices de las opciones que desea separar.
Utilizando el add_admin_menu_separator()
función
Así que he escrito una función para encapsular la lógica de esto que llamé add_admin_menu_separator()
. Tendrás que elegir un array número de índice que es más alto que la opción después de lo cual desea agregar un separador y luego llamar a la función add_admin_menu_separator()
pasando dicho índice como su parámetro.
Por ejemplo:
add_admin_menu_separator(37);
los add_admin_menu_separator()
función en sí
Aquí está la definición de la función. add_admin_menu_separator()
que puedes copiar en tu tema functions.php
expediente. Sí, es arcano, pero también lo es el código que crea y usa el global. $menu
array. (Los planes son eventualmente desaprobarlo, afortunadamente, pero eso probablemente será dentro de algunos años).
function add_admin_menu_separator($position)
global $menu;
$index = 0;
foreach($menu as $offset => $section)
if (substr($section[2],0,9)=='separator')
$index++;
if ($offset>=$position)
$menu[$position] = array('','read',"separator$index",'','wp-menu-separator');
break;
ksort( $menu );
Encontrar el índice en $menu
Que tu necesitas
Para averiguar qué número de índice necesita, puede hacer un var_dump()
de $GLOBALS['menu']
desde dentro de un admin_init
gancho. Aquí hay un poco de código que puede colocar en su tema functions.php
archivo temporalmente para ver cuáles son los valores. Esto solo funcionará cuando se 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 a su tema). functions.php
¡expediente!):
add_action('admin_init','dump_admin_menu');
function dump_admin_menu()
if (is_admin())
header('Content-Type:text/plain');
var_dump($GLOBALS['menu']);
exit;
Ver también:
Por cierto, puede encontrar estos enlaces útiles en general para trabajar con menús de administración:
- Cambio del orden de las secciones del menú de administración
- Más reciente:
wp-admin-menu-classes.php
Aunque mis clases del menú de administración actualmente no ofrecen una manera fácil de agregar separadores, creo que ahora lo agregaré cuando tenga tiempo.
Es fácil como:
add_action( 'admin_init', 'add_sep' );
function add_sep()
if ( ! is_admin() )
return false;
global $menu;
$sep = $menu[4]; // that's the default separator
$pos = 6; // change it for the desired position
$menu = array_merge(
array_slice( $menu, 0, $pos ),
array( $sep ),
array_slice( $menu, $pos + 1, -1)
);
$menu[ $pos - 1 ][4] .= ' menu-top-last';
$menu[ $pos + 1 ][4] .= ' menu-top-first';
Nota: La posición del separador por defecto ($menu[4]
) puede ser diferente según la configuración que haya realizado usted (o sus complementos) antes de este gancho.
Por supuesto, también puede ajustar el menu-top-first
y menu-top-last
Clases de introspección.
Tuve algunos problemas con los separadores que no se agregaron, se debió a la forma en que wordpress elimina los separadores duplicados. agregando ksort($menu);
al final de la función se corrigió el problema.
Te invitamos a añadir valor a nuestro contenido dando tu experiencia en las anotaciones.