Nonces II
Ejemplo 2
En este ejemplo crearemos un nonce para un input de un formulario, crearemos una opción de menú en nuestro panel de administrador y un formulario con un botón de eliminar. En este formulario pasaremos el nonce que hemos creado y lo verificaremos.
Creamos un menú en el panel de administración:
Después creamos la función donde pasaremos un nonce por medio de un formulario:
En el código que acabamos de escribir, validaremos el nonce que hemos creado, y pasamos por el formulario a través del campo input con el name “nonce”. Validaremos si el valor $_POST[‘nonce’] existe y no está vacío:
También utilizaremos una function de WordPress wp_verify_nonce(), para comprobar que el nonce que creamos y pasamos por post sea el mismo:
El resultado de todo este código es que, en nuestro panel de administración, al hacer clic en el botón eliminar, veremos un mensaje tal que hemos verificado correctamente el nonce:
Menús y submenús de administración de WordPress
Creación de menús en la administración
Crear un menú en WordPress es bastante sencillo. Existen varias formas de hacerlo: lo puedes poner en un plugin, lo puedes poner en un tema, y luego lo puedes hacer con clases o con funciones sueltas.
¿Para qué vale tener un menú de administración en WordPress? Si quieres poder personalizar o tener tus propias páginas de configuración para vuestro plugin o vuestro tema, esta es la mejor solución.
Crear un menú en WordPress
Para esto usaremos la función add_menu_page() que nos provee la api de WordPress.
Agregar una página de menú de nivel superior.
Descripción
Esta función tiene una capacidad que se utilizará para determinar si una página se incluye o no en el menú.
La función que está conectada para manejar la salida de la página debe verificar que el usuario también tenga la capacidad requerida.
Parámetros
• $page_title
( cadena ) (obligatorio) El texto que se mostrará en las etiquetas de título de la página cuando se seleccione el menú.
• $menu_title
( cadena ) (obligatorio) El texto que se utilizará para el menú.
• $capability
( cadena ) (Requerido) La capacidad requerida para que en este menú se muestre al usuario.
• $menu_slug
( cadena ) (Obligatorio) El nombre del slug para referirse a este menú. Debe ser único para esta página de menú y solo debe incluir caracteres alfanuméricos en minúscula, guiones y guiones bajos para que sean compatibles con sanitize_key ().
• $function
( invocable ) (Opcional) La función que se llamará para generar el contenido de esta página. Valor por defecto: ‘’
• $icon_url
( cadena ) (Opcional) La url del icono que se utilizará para este menú. Pase un SVG codificado en base64 usando un URI de datos, que se coloreará para que coincida con el esquema de color. Esto debería comenzar con ‘data: image / svg + xml; base64,’. Pase el nombre de una clase auxiliar de Dashicons para usar un icono de fuente, por ejemplo, ‘dashicons-chart-pie’. Pase ‘none’ para dejar div.wp-menu-image vacío para que se pueda agregar un icono a través de CSS. Valor por defecto: ‘’
• $position
( int ) (Opcional) Debe aparecer la posición en el orden de menú de este elemento. Valor predeterminado: nulo
Ejemplo
Crearemos un menú como ejemplo en nuestro plugin pruebas. Lo primero que crearemos es un archivo img en la raíz de nuestro plugin y dentro pondremos un archivo de tipo imagen de 20 px x 20 px que es lo que requiere el estándar de WordPress para los iconos personalizados de nuestros menús.
Después en nuestro archivo principal res-pruebas.php escribiremos el siguiente código para crear el menú:
Creando la función callback del menú
Ahora crearemos la función de llamada o función callback del menú, que es donde pondremos nuestro html. Esta función proviene de la función de creación de la página del menú.
Eliminar menús
Para eliminar algún menú del panel de administración, debemos utilizar la función remove_menu_page(), dentro de la misma función donde se creó el menú.
Eliminaremos el menú RES Prueba Nonce que hemos hecho en ejemplos anteriores.
Si vamos a nuestro panel de administrador, veremos cómo desaparece el menú.
Creación de submenús
Los submenús son páginas de opciones adicionales que van dentro del menú que hemos creado. Para crear un submenú del menú RES Opciones de Página, debemos tener en cuenta el slug que es res_options_page y escribimos lo siguiente:
Ahora crearemos la función de llamada o función callback, donde pondré mi html.