Cómo crear una página en el escritorio de WordPress que no aparezca en el menú

Cuando haces desarrollos de plugins o temas en WordPress es muy normal que tengas que crear nuevos menús en el escritorio de WordPress. Cada menú y opción de submenú que crees, tendrán su página asociada. Es decir si tu haces:

add_submenu_page( 'woocommerce', 'Arreglos en el feed', 'Arreglos en el feed', 'manage_options', 'cs-arreglos-feeds', 'cod_arreglos_feed_herramientas' );

Estás creando una entrada nueva en el submenú de WooCommerce que te llevará a la página “Arreglos en el feed” y que mostrará el contenido de la función “cod_arreglos_feed_herramientas”.

Pero en ocasiones quieres crear una página en el escritorio, pero no en el menú. ¿Por qué puedes querer esto?

  • Porque esa página muestra una funcionalidad que se ejecute pocas veces
  • Para no sobrecargar de menús la instalación de WordPress
  • Porque esa página necesite de un parámetro GET para ejecutarse (imagínate que es una página que hace un proceso sobre un pedido de WooCommerce pero que necesita del ID de pedido para ejecutarse)

Crear una página que no aparezca en el menú

El método es muy sencillo para conseguirlo, ponemos el primer elemento de la función add_submenu_page a null y listo. Este primer elemento es el que contiene el slug del menú “padre” es decir el que hace referencia en qué menú vamos a incorporar el submenú. Para nuestro caso quedaría así:

add_submenu_page( NULL, 'Arreglos en el feed', 'Arreglos en el feed', 'manage_options', 'cs-arreglos-feeds', 'cod_arreglos_feed_herramientas' );

¿Sencillo verdad? El resto de parámetros quedan igual:

  • Título de página
  • Título de menú: que quedará sin usarse
  • Capacidad mínima para visualizar la página
  • Slug
  • Función que se llama

Cómo acceder a una página que no aparece en el menú

Ahora viene la segunda parte. Tenemos una página creada y por lo general, siempre entrábamos a través del menú. Ahora no tenemos esa opción porque directamente hemos ocultado esta página del menú. ¿Cómo accedemos? A través del slug.

Para acceder a la página del ejemplo haríamos esto: https://misitio.com/wp-admin/admin.php?page=cs-arreglos-feeds

Es decir, a la dirección de administración, pasamos un parámetro con el slug de la página. Si quieres parametrizarlo dentro de una función en WordPress puedes hacerlo usando add_query_arg, y así podrías pasar más parámetros si quieres, como el ID de pedido al que hacía antes referencia en el ejemplo:

add_query_arg( array(
  'page' => 'cs-arreglos-feeds'
), admin_url() );

// si queremos añadir otro parámetro podríamos hacer
add_query_arg( array(
  'page' => 'cs-arreglos-feeds',
  'id_pedido' => $id_pedido
), admin_url() );

Si tenéis dudas solo tenéis que dejarlas en comentarios.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando…

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Carrito