6. Empecemos con nuestro plugin

Llegados a este punto, he creído conveniente hacer una parada técnica, para empezar mi nuevo plugin, y así revisar los temas que hasta aquí hemos tratado.

El directorio del plugin

Como se explica en el artículo ‘2. Conceptos básicos de los plugins’, empezamos creando el directorio que va a acoger nuestro plugin.

En este caso lo he denominado ‘stm-ancora’ para potenciar mi ego. Dentro de este directorio, creamos un archivo con el mismo nombre, stm-ancora.php, que será el archivo principal de nuestro plugin.

En ese archivo introducimos lo siguiente:

Con esto, WordPress ya nos reconoce la existencia del plugin:

plugin-6.1

Sin embargo, esto es muy pobre, y vamos a ofrecer más información al usuario:

Parece que queda algo mejor:

plugin-6.2

 

Añadir elemento de menú

Como ejemplo de nuestro artículo ‘5. Menús de administración’, vamos ahora a crear un elemento nuevo del menú:

El resultado, al activar nuestro plugin, es el siguiente:

plugin-6.3

Bien, no está mal. Pero su posición en el menú no me gusta. Para ello, vamos a cambiarla, colocando un 3 en el último parámetro de la función add_menu_page:

Y el resultado es:

plugin-6.4

 

Menú con llamada a fichero

Ahora, en lugar de añadir el menú mediante una función, vamos a ver cómo hacerlo mediante un fichero adicional (ya sabéis, me gusta la programación por módulos).

Para ello, cambiamos los parámetros de la función add_menu_page otra vez:

Y, en el directorio de nuestro plugin, ‘stm-ancora’, creamos el fichero prueba-funcion-menu.php, con el siguiente contenido:

Con lo que conseguimos el mismo resultado.

Este plugin lo quiero instalar de tal forma, que lo pueda manipular el usuario de la web, que tendrá categoría de editor, por lo que vamos a entrar como tal, a ver si está disponible. El resultado es el siguiente:

plugin-6.5

 

Roles y permisos (capabilities)

Yo estoy preparando este plugin para que un usuario con categoría editor lo pueda emplear, pero sin poder acceder al menú ‘Apariencia’ de la administración de WordPress (hay mucho manazas suelto).

Si vamos a la página del Codex de WordPress Roles and Capabilities, encontraréis a media altura de la página una tabla con los diferentes permisos que tiene cada rol de usuario. Bien, como yo quiero que mi usuario entre como ‘Editor’, busco los diferentes permisos que le corresponden al editor en la tabla y cojo uno de ellos, ‘publish_pages’, para asignárselo al plugin y así el editor lo pueda manipular a su antojo.

 

Posición en el menú del panel de administración de WP

Para entender cómo manejar la posición de los elementos en el menú izquierdo del panel de administración de WordPress, en la página del Codex add_menu_page, abajo, justo antes de los comentarios, encontraréis la tabla de las posiciones de los elementos por defecto de WordPress:

Menu Structure

Default: bottom of menu structure

  • 2 – Dashboard
  • 4 – Separator
  • 5 – Posts
  • 10 – Media
  • 15 – Links
  • 20 – Pages
  • 25 – Comments
  • 59 – Separator
  • 60 – Appearance
  • 65 – Plugins
  • 70 – Users
  • 75 – Tools
  • 80 – Settings
  • 99 – Separator

La misma página nos advierte del peligro que supone que dos elementos del menú tengan el mismo parámetro de posición, pues en tal caso uno de ellos no se visualizará. Para reducir este riesgo, en lugar de un parámetro entero (‘3’) lo más correcto sería ponerlo en decimal (p.ej., ‘3.3’).

 

El último truco

Esto que voy a explicar a continuación, más que un truco, personalmente, me parece un bugg.

El mismo Codex te explica los parámetros que debes aportar a la función add_menu_page:

Bien, esto es cuando lo que hacemos es añadir una nueva página de menú mediante una función. Sin embargo, si lo queremos hacer mediante un archivo, la ruta y el nombre del archivo lo debemos introducir en $menu_slug, y dejar $function = ”.

 

Añadiendo submenús

Para añadir elementos de submenú, emplearemos la función add_submenu_page:

Aquí debemos tener en cuenta también el truco de los argumentos $sub_menu_slug$function, con los que tenemos que jugar, en función de si queremos construir la sub-página con una función o con un fichero, como se ve a continuación:

Al tener submenús, WordPress genera automáticamente otro elemento de submenú igual al menú, lo cual es práctica común eliminarlo, con la instrucción remove_submenu_page( $menu_slug, $submenu_slug ), como he hecho yo también:

 

Así pues, hemos visto cómo empezar a crear un plugin y cómo modificar el menú de administración de WordPress, añadiéndole elementos. Ahora seguiremos la traducción del ‘Manual de Plugins de WordPress’, y cuando considere conveniente haremos otra parada técnica.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *