Jhon Jairo Rincón Cardona

El gran libro de desarrollo de plugins WordPress


Скачать книгу

qué estamos haciendo en echo para ver la ruta y el nonce que generamos.

Illustration

      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:

Illustration Illustration

      Después creamos la función donde pasaremos un nonce por medio de un formulario:

Illustration Illustration

      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:

Illustration

      También utilizaremos una function de WordPress wp_verify_nonce(), para comprobar que el nonce que creamos y pasamos por post sea el mismo:

Illustration

      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:

Illustration

      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.

Illustration

      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.

Illustration

      Después en nuestro archivo principal res-pruebas.php escribiremos el siguiente código para crear el menú:

Illustration

      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ú.

Illustration

      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.

Illustration Illustration

      Si vamos a nuestro panel de administrador, veremos cómo desaparece el menú.

      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:

Illustration

      Ahora crearemos la función de llamada o función callback, donde pondré mi html.