Cómo eliminar elementos del menú de administración de WordPress mediante programación sin complemento

Publicado: 2020-01-20

Cómo eliminar los elementos del menú de administración de WordPress mediante programación Los menús del panel de WordPress son una forma muy útil de moverse por las diferentes secciones del panel de administración, pero a veces pueden ser molestos o no deseados. En particular, cuando usa WordPress como un sistema de administración de contenido para crear un sitio web de cliente en lugar de bloguear, debe eliminar los elementos del menú de administración de WordPress que no son necesarios.

Una de las formas más fáciles de eliminar los elementos del menú de administración de WordPress es usar los complementos disponibles gratuitamente que pueden ocultar los elementos del menú de administración por función de usuario o condicionalmente.

Cuándo no eliminar los elementos del menú de administración de WordPress usando un complemento

Los inconvenientes de usar complementos para eliminar los elementos del menú de administración de WordPress pueden ser una dependencia excesiva de los desarrolladores de complementos de terceros para obtener actualizaciones constantes.

Riesgo de complementos de terceros

En este caso, cuando desee controlar qué menús se muestran en su tablero de WordPress sin usar un complemento, este tutorial es la mejor guía para usted.

Actualizaciones constantes

Otra razón para eliminar los elementos del menú de administración de WordPress mediante programación son las actualizaciones constantes que tiene en todos los complementos de WordPress que instala.

Estas actualizaciones son importantes ya que mejoran la experiencia del usuario, el rendimiento y la seguridad, pero pueden ser demasiado engorrosas, especialmente cuando se trata de una gran cantidad de sitios web de clientes.

Varios menús de administración de complementos

Cuando tiene tantos complementos instalados en su sitio, la mayoría vienen con menús de administración y es posible que desee eliminar los menús ya que no los usa constantemente.

En esta publicación, ilustraré cómo eliminar los elementos del menú de WordPress sin usar un complemento. Para implementar esto en su sitio de WordPress, necesita un poco de experiencia en la edición de sitios de WordPress, especialmente en la adición de fragmentos de código al archivo de tema functions.php.

Eliminar elementos del menú de administración de WordPress mediante programación

Me gusta comenzar con un resumen rápido, ya que hace que sea más fácil para los lectores que buscan una solución rápida en una guía paso a paso. Los siguientes son los pasos que debe seguir para eliminar los elementos del menú de administración de WordPress.

  1. Inicie sesión en su sitio de WordPress e identifique los elementos del menú de administración que desea eliminar
  2. Cree un enlace de acción que se conecte al evento admin_menu con una función de devolución de llamada que tenga la lógica para eliminar los menús de administración de WordPress de su tablero.
  3. La función de devolución de llamada debe usar las funciones de WordPress remove_menu_page o remove_submenu_page() para eliminar cada uno de los elementos del menú de administración objetivo. Por ejemplo, puede eliminar el menú de widgets del menú de temas usando este código remove_submenu_page( 'themes.php', 'widgets.php'); o elimine el menú principal del tablero con este código: remove_menu_page('index.php');
  4. Alternativamente, puede usar la función php unset() y acceder a los valores de la matriz de submenú global para eliminar cada uno de los elementos del menú de administración de WordPress.
  5. Agregue este fragmento de código al tema functions.php y actualice los cambios. Esto eliminará con éxito los elementos del menú de administración de WordPress sin usar un complemento.
  6. También puede agregar este código a una función en su complemento personalizado y funcionará como funciona en el tema functions.php

Cómo eliminar los menús de administración de WordPress sin complemento

El siguiente es el enfoque detallado paso a paso para eliminar los elementos del menú de administración de WordPress agregando código en lugar de usar otro complemento.

Identificar elementos del menú de administración Slug

Inicie sesión en su tablero de WordPress y verifique los elementos del menú de administración que desea eliminar. Como puede ver en este ejemplo, el menú principal del tablero tiene el slug index.php .

Este slug es importante ya que es uno de los parámetros que agrega a la función remove_submenu_page(), como ilustraré en breve.

eliminar el menú de administración de wordpress

Comprender cómo eliminar la página y eliminar las funciones de la página del submenú funciona

Eliminar función de página

La función remove_menu_page viene con un solo parámetro que es el slug de la página y elimina el menú de administración de nivel superior. El parámetro es una cadena ya que es el slug de la página que obviamente es una cadena y el código general debería ser el siguiente:

 remove_menu_page(cadena;$menu_slug;)

Eliminar función de subpágina

La función remove_submenu_page viene con dos parámetros, el primero, que es el slug del menú principal cuando elimina los submenús, y el segundo, el slug del submenú que desea eliminar. El código general debe ser el siguiente:

 remove_submenu_page( cadena $menu_slug, cadena $submenu_slug )

Cree un enlace de acción para eliminar los elementos del menú o submenú de administración

El siguiente es un ejemplo de un gancho de acción que se engancha en el evento admin_menu y tiene una función de devolución de llamada que hemos llamado ' remove_admin_menu_items'

 add_action('admin_menu', 'remove_admin_menu_items', 999);

Cree la función de devolución de llamada para eliminar el menú de administración o los elementos del submenú con remove_submenu_page y remove_menu_page ()

Primero, en la función de devolución de llamada, debe obtener la matriz de menús globales con la variable global $submenu si va a utilizar la función unset() .

En segundo lugar, agrega la función remove_submenu_page o remove_menu_page () dirigida a la página que desea eliminar como se muestra en el código a continuación:

 función remove_admin_menu_items() {        

    remove_submenu_page( 'menu_slug', 'submenu_slug'); 

}

O usando unset puede tener la siguiente función de devolución de llamada

 función remove_admin_menu_items() {

        submenú global $; 

       unset($submenu['menú principal slug'][índice de matriz de submenú de elementos de administración]);

 }

Ejemplo de cómo eliminar el elemento del menú de administración de actualizaciones

Cuando inicia sesión en su panel de WordPress, hay un elemento de menú sobre las actualizaciones que se encuentran debajo del menú del panel principal, como se muestra en la imagen a continuación:

eliminar el menú de administración de wordpress

Ilustraré cómo puede eliminar este elemento del menú de administración usando el método discutido anteriormente. Primero, el slug del menú principal es index.php y el slug del menú de actualizaciones es update-core.php

Eliminar elemento principal y submenú del menú de administración de WordPress

Por lo tanto, puede crear el gancho de acción y la función de devolución de llamada para eliminar todo el elemento del menú utilizando la función remove_menu_page() de la siguiente manera:

 // Eliminar el elemento del menú principal junto con las subpáginas /submenús

add_action('admin_menu', 'remove_admin_menu_items', 999);

 función remove_admin_menu_items() {

    remove_menu_page('index.php');


 }

Esto eliminará todo el menú y los submenús como se muestra en la imagen a continuación:

Eliminar solo elementos del submenú de WordPress

Eliminar solo elementos del submenú de WordPress

Puede crear el enlace de acción y la función de devolución de llamada para eliminar el elemento del submenú mediante la función remove_submenu_page de la siguiente manera:

 //Eliminar las subpáginas o submenú

add_action('admin_menu', 'remove_admin_menu_items', 999);

función remove_admin_menu_items() {

    remove_submenu_page('index.php','update-core.php' );

}

Esto eliminará el submenú especificado en el segundo parámetro de la función remove_submenu_page, en este caso, especificamos como ' update-core.php' y el resultado es como se muestra en la siguiente imagen:

Uso de la función PHP Unset()

También podemos usar la función unset de PHP para eliminar los elementos del submenú y, en este caso, primero debemos acceder a la matriz global $submenu como se muestra en el siguiente código:

 //agregue el enlace de acción al evento admin_menu

add_action('admin_menu', 'remove_admin_menu_items', 999);

// función de devolución de llamada
función remove_admin_menu_items() {

    // Matriz del menú de administración->Lista de todos los elementos del menú de administración de WordPress en esta matriz
    submenú global $;

    // imprime la matriz en la pantalla para que podamos ver los elementos del menú de administración por índice
    
     imprimir('<pre>');
     print_r($submenú);
     imprimir('<pre>');

      // eliminamos todo lo demás que se muestra en la pantalla para que solo vea la matriz de elementos del menú de administración
      morir();

}

Este código se apodera de la matriz de submenú global y lo imprimimos para mostrar la matriz de todos los menús para que podamos elegir el índice de cada uno de los elementos del menú de administración y luego eliminarlos como deseemos.

En este código, puede ver el uso de las preetiquetas y la función die() para mostrar el código en un formato legible.

Uso de la función PHP Unset () wordpress

Eliminar el elemento del menú del submenú de WordPress usando Unset

Entonces, el índice de matriz para el submenú de actualización central es 10 . Así que podemos continuar y usar la función unset() de la siguiente manera:

 // Eliminar el elemento del menú principal junto con las subpáginas usando unset

add_action('admin_menu', 'remove_admin_menu_items', 999);

función remove_admin_menu_items() {

    submenú global $;

       unset($submenú['index.php'][0]); // eliminar el menú de nivel superior index.php (menú del panel de control - Menú de inicio)
      unset($submenú['index.php'][10]); // eliminar el submenú update-core.php (menú de actualizaciones)


}

Los resultados serán los mismos que usando la función de WordPress remove_submenu_page.

Eliminar el elemento del menú de administración de WordPress usando Unset

También podemos eliminar la página de nivel superior y el submenú todos juntos usando la función de desarmado dirigida a cada una de estas páginas:

Eliminar el elemento del menú de administración de WordPress usando Unset

El código debe ser el siguiente:

 //. Eliminar el elemento del submenú principal usando unset

add_action('admin_menu', 'remove_admin_menu_items', 999);

función remove_admin_menu_items() {

   submenú global $;

   unset($submenú['index.php'][10]);


}

El resultado será eliminar cualquiera de las páginas tal y como hemos desmarcado en el código:

Cómo eliminar elementos del menú de administración de WordPress mediante programación sin complemento

Terminando

En esta publicación, hemos cubierto ampliamente las dos formas principales que puede usar para eliminar los elementos del menú de administración de WordPress y limpiar su tablero de WordPress. Si es un desarrollador de WordPress, puede reutilizar este código y copiarlo fácilmente. Consulte mi esencia y puede seguirme en GitHub para obtener más actualizaciones futuras. También he compartido varios otros fragmentos aquí: WP-Snippets . Espero que ahora pueda eliminar esos elementos de administración de WordPress que no desea de su menú.