Desarrollo de plugins para wordpress (II)

En la entrada anterior vimos como dar los primeros pasos en la creación de un plugin para Wordpress. Entre otras cosas, hablamos de cómo podían interactuar los plugins con la plataforma Wordpress.
Haciendo un poco de memoria recordaremos que vimos  los métodos add_filter y add_action, por lo que nos quedarían por ver los template tags y los shortcodes.
¿Cual es la diferencia entre los template tags y los shortcodes? La mayor diferencia es que un shortcode es una marca que ponemos en un post o una página, mientras que un template code es una función que ha de colocarse en el template que estemos utilizando.
¿Cuales debo utilizar?, depende exclusivamente de desde donde tenemos pensado utilizarlos, si los queremos para modificar el template utilizaremos template tags, si lo que queremos es poder utilizarlo desde cualquier sitio y cuando nos venga en gana --Lo cual dicho así parece el mejor método-- utilizaremos shortcodes, que es exactamente lo que vamos  a ver a continuación.



Utilizando shortcodes

Un shortcode no es más que una marca o etiqueta que se vería de la siguiente manera:[lshortcode_name]
Wordpress ya incorpora sus propios shortcodes de serie que podemos consultar aqui.

Como no, para ilustrar todo esto nada mejor que un pequeño ejemplo. En este caso nos mostrará un formulario de contacto.
He creado el archivo wgo_articulo_2.php para realizar la práctica, aunque si queréis por motivos de comodidad podéis utilizar el archivo que creamos el otro día.
Una vez creado el archivo y con la cabecera correctamente completada vamos definir la función getContactForm()

para ello vamos a utilizar la función add_shortcode()

function wgo_get_contact_form()
{
 $content .=  '
  <form>
   <div><input name="nombre" placeholder="Nombre" required></div>
   <div><input name="apell" placeholder="Apellidos" required></div>
   <div><input type="email"  placeholder="email" required></div>
   <div><input type="submit" value="Enviar"></div>
  </form>
  ';

 return $content;
}


Con estas sencillas líneas, vamos a mostrar un formulario de lo más simple, ya sólo nos faltaría añadir el shortcode con la función add_shortcode de la siguiente manera:add_shortcode('wgo_getTheForm','wgo_get_contact_form');
Vemos que la función admite dos parámetros. El primero es el shortcode y el segundo la función que se va a ejecutar cuando se llame a dicho shortcode.

Ahora sí, activamos el plugin y creamos una página o post con el shortcode [wgo_getTheForm], veremos que se nos muestra un formulario.

¿Y los parámetros?

Toda esta funcionalidad está muy bien, pero tiene que haber un mecanismo que nos permita pasar parámetros a estas funciones de manera que ganemos control sobre las mismas. Para ello modificamos la función de manera que le podamos especificar los datos del formulario.

function wgo_get_contact_form($atts)
{
 $content .=  '
  <form>
   <div><input name="nombre" placeholder="Nombre" value='.$atts[nombre].' required></div>
   <div><input name="apell" placeholder="Apellidos" value='.$atts[apell].' required></div>
   <div><input type="email"  placeholder="email" value='.$atts[email].' required></div>
   <div><input type="submit" value="Enviar"></div>
  </form>
  ';

 return $content;
}


Si en el artículo cambios el shortcode anterior y ponemos:
[wgo_getTheForm nombre="Oscar" apell="Andreu" email="oscar@foo.com"]

Tendremos que los parámetros han llegado a la función y esta los ha incorporado al formulario, y como una imagen vale más que mil palabras aquí tenemos el resultado.
.

Conclusión

Con este post completamos las ideas básicas acerca de como interaccionan los plugin con Wordpress, una vez visto esto necesitaríamos poder crear menús para administrar nuestros plugins y así poder crear parámetros personalizables, de manera que estos plugins ganen en utilidad. Alguno estará pensando --No puedo creer que en el siguiente post se vea algo de utilidad.-- Pues posiblemente comencemos una estructura básica completa incorporando lo que he nombrado en todos los post hasta el momento, de manera que nos sirva como base para iniciar desarrollos más serios.
Como siempre podéis descargar el código de este tutorial desde aquí.

No hay comentarios:

Publicar un comentario