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

¿Qué aporta la integración de Bizum y métodos similares en el proceso de pago?

El comercio electrónico español, que se encuentra en pleno crecimiento y transformación, vive actualmente un…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Desarrollo de plugins a medida WordPress

El desarrollo de plugins a medida WordPress resuelve pagos, reservas y flujos propios con integración…

hace % días

Plugin RedSys WooCommerce: cobros sin errores

El plugin RedSys WooCommerce conecta tu tienda con el banco, reduce errores de cobro y…

hace % días

Cómo resolver un rechazo SIS en WordPress

Aprende a resolver rechazo SIS en WordPress: identifica el código, revisa RedSys, pedidos y firmas…

hace % días