Cómo hacer un plugin para WordPress

por | 9 Sep 2014 | El desván de Víctor Campuzano | 24 Comentarios

Ahí es nada, Javi, ¡ande me has metio!. El título encaja más para un libro que para un post y, por eso, éste no pretende (ni podría llegar a) ser una guía completa ni paso a paso para crear plugins para WordPress, es imposible.

Sin embargo, en mi experiencia desarrollando Vcgs Toolbox, he tenido que aprender una serie de conceptos y he conseguido encontrar algunos recursos que quizás te resulten interesantes si pretendes desarrollar un plugin para Worpress. Eso es lo que voy a intentar compartir aquí.

Peeeeero, estamos en un tema serio y cuando escribo sobre estas cosas a mí como que me duelen las cejas de tanto fruncirlas así que, antes de empezar, déjame contarte un chiste: “¿Quién es más rápido, el garbanzo o la lenta-ja?”. Jajajajaja. Diós! ¿En serio vas a seguir leyendo después de esto?.

Nota: Si no eres programador o no te interesa el desarrollo de plugins, te vas a aburrir con este post. Por eso, si es tu caso, te recomiendo que vayas directamente al final.

El plugin más pequeño del mundo

[piopialo]Angelico, que no va a los conciertos porque siempre acaba viendo un mar de culos.[/piopialo]

Lo primero que tienes que saber es que, como mínimo, un plugin de WordPress está compuesto por un archivo readme.txt, que reúne información sobre qué hace, cual es la versión estable, con qué versión de WordPress es compatible, etc; y un fichero nombredetuplugin.php con el código que define el comportamiento o las funciones que va a hacer.

Ya está, no necesitas nada más. Junta esos dos archivos en una carpeta que tenga por nombre el mismo que el plugin, comprímelo en ZIP y ya has hecho uno. Así de sencillo.

Eso si, el archivo txt tiene que tener una sintaxis específica. Pero, por suerte, aquí te dejo una herramienta que te lo genera fácilmente: Generate WP Plugin Readme File.

En el archivo readme.txt definirás toda la información que saldrá en la página del plugin dentro del catálogo oficial de WordPress, si decides publicarlo ahí.

 

Entender el concepto de ganchos “hooks” en WordPress

En casi todos los cuentos, el Capitán Garfio es el malo. Aquí es el rey. Por cierto, ¿os podéis imaginas la cantidad de veces que repito al día la canción “Que bien tripulación, todos cumplieron su función.. tú nos tienes que ayudar, los doblones hay que contar”. Padres, madres, seguro que me entenderéis. Así que, envíame un audio cantando la canción y al más gracioso le regalo 2 horas de consultoría para su blog.

Para entender cómo programar plugins para WordPress, es necesario entender el concepto de hooks o “ganchos”. Porque, por mucho código que agregues en tu archivo php, éste tiene que responder a la llamada del núcleo de WordPress.

Fíjate en esta imagen, donde trato de ilustrarlo:

Los Ganchos en WordPress

WordPress funciona como una caja cerrada, con unas funciones determinadas, denominada núcleo y cuyo código no tienes por qué entender ni tocar.

Sin embargo, a esa caja puedes “enchufarle” porciones de código que serán ejecutadas cuando sea oportuno, en función de dónde las enchufas. Por tanto, es como si WordPress pusiera a disposición de los desarrolladores un sin fin de “conectores” para “enchufar” su código y que el núcleo lo ejecute.

Por lo tanto, volviendo a simplificar, el archivo .php de un plugin no es más que un fichero que lleva una o más combinaciones de dos elementos:

  • Una función PHP que realiza una determinada tarea, la que tu quieras. Esta función recibirá datos de WordPress y devolverá datos a WordPress en función de a qué conector se haya enchufado.
  • Una línea de código que define a qué conector irá enchufada la función anterior.

Ya está, conceptualmente es así de sencillo.

[piopialo vcboxed=»1″]Dos recursos imprescindibles para el Plugingramador Novel[/piopialo]

Dos recursos imprescindibles para el Plugigramador Novel

Jejejeje, me he inventado otra palabra. Por lo menos …

Para entender cómo funciona y empezar a romper el hielo, recomiendo visitar estos dos sitios webs:

  • GenerateWp. Es una herramienta online muy útil para generar el código de unas determinadas funciones de WordPress. Así, tu solo rellenas un formulario con los parámetros y esta fantástica herramienta te genera el código PHP. Es muy útil para ir familiarizándote con la nomenclatura y sintaxis de WordPress.
  • WPSnipps. Un catálogo con más de 600 porciones de código específicas para realizar casi cualquier tarea. Este portal, donde muchos usuarios contribuyen con sus códigos, te permitirá coger ejemplos de código ya realizado para añadir directamente a tu tema o plugin.

¿Ves? Aquí tienes mis “armas secretas” para encontrar ejemplos.

Otra cosa que hago mucho es revisar el código de plugins que ya hay hechos para ver cómo lo han enfocado y coger ideas además de aprender. Ahí lo dejo.

Publicar el Plugin: En el catálogo o en archivo ZIP

De verdad, lo que más quebraderos de cabeza me dio al principio de crear Vcgs Toolbox fue el cómo publicarlo en el repositorio oficial de WordPress.

Y es que el proceso, aunque luego te parece tremendamente sencillo, es confuso al principio y más si nunca has usado un sistema de control de versiones.

A grandes rasgos, los pasos a seguir son:

  1. Creas una versión en Zip de tu plugin.
  2. Envías tu plugin al equipo de WordPress para que lo apruebe.
  3. Si es aprobado, te crean una carpeta en el repositorio oficial, que deberás gestionarla con un software de control de versiones como SubVersion.
  4. Teniendo esto, solo tienes que ir creando versiones de tu plugin y mandarlas a tu carpeta para que se publiquen automáticamente.

¿Verdad que parece sencillo? Pues a mi me costó un montón familiarizarme con el sistema de versiones. Seguí este tutorial (unos 20 más).

Ya está …

Bueno, como verás hoy me he salido un poco de la temática general de mis últimos artículos, pero por una razón de peso: me lo ha pedido un lector (que también es amigo).

Y es que, aunque es cierto que no puedes limitarte a seguir todas las sugerencias y peticiones (ya me gustaría), tampoco debes, en mi humilde opinión, olvidar que [piopialo]tu comunidad no es un número sino personas que te ayudan a crecer[/piopialo] y estás ahí para responderles o los perderás.

Quizás este post no te haya resultado interesante pero espero que hayas entendido la razón de publicarlo. ¿Verdad? Amos, la razón está clara: el chiste del principio! Jajajaja.

Bueno, y otra. Porfi, mándame un audio (info arroba vcgs punto net) cantando la canción de Jake y podrás ganar una hora de consultoría por skype … (¿En serio funcionan este tipo de ofertas?) y ¡te divertirás un montón! Por lo menos Javi lo enviará, digo yo…

¿Qué me dices?

4.1/5 - (7 votos)

24 Comentarios

  1. Jarfer

    Hola Víctor, aunque en estos momentos no tengo pensado hacer ningún plugin para WordPress, tampoco descarto que algún día me ponga manos a la obra a hacer mi pequeña aportación al mundo WordPress, así que gracias por el post. Me ha parecido muy útil para empezar, y los recursos que indicas y el tutorial me parecen una gran aportación.

    Recibe un cordial saludo.

    Responder
  2. JaviEN

    Enorme Victor!!!!

    Primero por que te pedí que escribieras sobre eso, y ahí estás tú con tus mismísimos…(se puede decir eso aquí??) y te clavas un articulazo para que nos empecemos a empapar los que queremos lanzarnos a pluguinear un poco…

    Segundo porque no recordaba las páginas y herramientas que en su día me dijiste que usabas para este tema, así que ya tengo algo para guardar bajo llave en favoritos 🙂

    Y tercero por las de horas de consultorías que te vas a tragar por la campaña que no queda otra que iniciar de «Quieres tener una consultoría con un grande??? Cantaaaa!!!!» jajajaj.

    En serio, millones de gracias por este artículo. Sé que se sale de lo que sueles escribir pero a mi me soluciona un Mundo.

    Sin duda esta piedra que has dejado en mi tejado solo puede ser devuelta con un plugin de mi cosecha que me animaré a hacer gracias a tus consejos sobre los primeros pasos…

    Un abrazo y gracias de nuevo 🙂

    PD: Tendré que investigar sobre la canción que no sé cuál es… pero ándate con ojo que el día menos pensado podrías recibir la grabación más chunga que te hayan enviado… ¿tú no me has oído cantar verdad??? jejej.

    Responder
    • Victor Campuzano Gallego

      Jajajajajaja, cuidado con lo que me mandas que lo termino publicando! A ver su hago un podcast cuya intro quede de tu cargo …

      Responder
  3. Teresa

    ¡Buena entrada, Víctor! Yo no tengo ni idea de plugins y está bien saber cómo se crean 😉

    La idea del audio me ha sacado una buena carcajada, jajaja ¡Eres total!

    Responder
    • Victor Campuzano Gallego

      Jajajajaja. Estoy seguro que no voy a recibir ninguna grabación, pero sería una pasada! 🙂

      Gracias Te por el comment! 🙂

      Responder
  4. Juan Pablo

    Hola Víctor.

    Pues este post nos viene ni que pintado, ya que la semana pasada decidimos añadir a la lista de tareas el desarrollo de un plugin para WordPress que te inserte el código de Bloggerespacio en tu blog y haga algunas cosillas más.

    El post está entero escrito a medida para nosotros porque… ¿sabes que mi hija es fan de Jake, Izzi y el resto de los piratuchos?

    Un saludo!

    Responder
    • Victor Campuzano Gallego

      Jajajajajaja. Sabía que no era el único … Pues ya sabes! Tienes un audio que grabar! jajajajajaja.

      Saludos! 🙂

      Responder
  5. #Jerby

    Como hace unos días no se publicó un comentario que mandé, lo intento hoy de nuevo por si las arañas gugleras se encuentran de mejor humor.

    Para Víctor y para cualquiera que se atreva, la idea sería hacer un plugin para el comentario perfecto. Si clicáis en mi nick, tendréis las primeras ocho páginas de un ebook que hemos hecho sobre el comentario.

    Las ochenta restantes las sacaremos de los comentarios cruzados que hayan originado las ocho primeras…

    Responder
    • Victor Campuzano Gallego

      El comentario perfecto solo podría venir de ti #Jerby, que aglutinas mucha experiencia! 🙂

      Gracias !

      Responder
  6. Pedro

    Genial el post!!!
    Llevo tiempo pensando en la idea de empezar a programar plugins para wordpress.

    Una pregunta, ¿sabes si se puede usar github en vez de subversion?

    Saludos y gracias de nuevo!

    Responder
    • Victor Campuzano Gallego

      Hola Pedro!!

      Pues la verdad es que no lo tengo claro. Te diría que no, porque tu directorio de Subversion te lo crean los de WordPress cuando te aprueban el plugin. Ahora bien, igual si se puede.

      Sorry no poder concretar.

      Saludos!

      Responder
  7. Diana Garcés

    Bueno, no creo que hacer plugins sea lo mío, pero el conocimiento nunca está de más 🙂

    Como llevo varios días perdida, no entiendo eso de «la canción de Jake» yo no soy de cantar, al menos no de grabarme cantando, pero por ti, hasta hago el intento ¿Aún hay tiempo? jajaja

    Un abrazo desde Colombia amigo 🙂

    Responder
    • Victor Campuzano Gallego

      Jajajajajaja. Es una canción de Disney Channel, que ahora me las trago todas. Jajajajajajaja.

      Abrazote Diana! 🙂

      Responder
  8. David

    Hola Víctor, excelente aporte. He visitado http://wpsnipp.com/ como lo sugieres y la verdad es muy completo el sitio pero me topado con un problema que no he podido solucionar. En wpsnipp te indican como crear un nuevo perfil, también te guían para crear un menú con sus items en la columna derecha del administrador, pero lo que no dice es como darle privilegios al rol nuevo al menú nuevo que se creo, sabes como hacerlo? te agradezco mucho tu ayuda.

    Saludos

    Responder
    • Victor Campuzano Gallego

      Hola David!

      Tu duda ya es un poquito más avanzada. De hecho, aquí me pillas porque no tengo ni idea de cómo hacerla. En estos casos, yo voy a navegar por los foros del propio WordPress o a Stackoverflow que ahí si que hay auténticos cracks.

      Siento de veras no poder ayudarte, pero te lo digo con total sinceridad: me supera. Jajajaja.

      Saludos y gracias de todas formas por pasarte por aquí! 🙂

      Responder
  9. Nacho

    Gracias por tu tiempo Victor! Ahora si, voy a poder armar un pulin para el wordpress!!

    Responder
  10. AlexTemina

    Gacias, crack. Me guardo el post en el bolsillo y la web en el corazón.
    Qué cursi… pero como es San Valentín, odo vale.

    Responder
  11. Juan Carlos Lopez Escalona

    Hola muchas gracias por tus tutoriales, quería hacerte una pregunta, estoy desarrollando un plugin en el que los usuarios interactúan y en base a las opciones que seleccionan se crea un archivo PDF para que el usuario lo descargué, anteriormente he logrado eso con la librería PHPExcel para Excel pero no consigo una librería para PDF, si conoces alguna podrías recomendarme una que pueda incluir en mi plugin, gracias por tu valioso tiempo.

    Responder
    • Víctor Campuzano

      Hola Juan Carlos!! Sorry pero no llego a tanto. Lo veo más una cuestión de PHP que de WordPress. Por tanto, deberías consultarlo en StackOverflow. Ahí seguro que te lo responden en un tris.

      Saludos y gracias por el comentario! 🙂

      Responder
  12. Cristian

    Me siento bien, divertido y con nuevo conocimiento.
    Gracias y saludos desde México.

    Responder
  13. Ventura

    Gran artículo. Voy a echarle un vistazo a la herramienta online Generatewp a ver que tal funciona.

    Responder

Enviar un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.