WordPress

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.

Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.

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

Francisco Javier Carazo Gil

Entradas recientes

¿Por qué falla Bizum en WooCommerce? 9 causas

Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…

hace % días

Plugin gratuito Redsys WordPress: qué revisar

Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…

hace % días

Qué necesito para activar CECA Online en mi web

¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…

hace % días

Cómo elegir una pasarela para suscripciones

Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…

hace % días

Plugin Bizum WordPress para cobrar con control

Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…

hace % días

Cómo aceptar CECA en reservas de WordPress

Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…

hace % días