Desenvolupant una extensió a WordPress
A part d’instal·lar extensions de WordPress creades per tercers i fer-les servir en els nostres llocs de WordPress, nosaltres també podem desenvolupar-les per després utilitzar-les en els nostres llocs o compartir-les amb altres usuaris de WordPress. D’aquesta manera, aconseguim crear extensions amb funcionalitats molt específiques que no trobem en les extensions que ja estan creades.
Quan ens dediquem a desenvolupar extensions per WordPress, passem a ser desenvolupadors de WordPress.
Elements involucrats
Una extensió de WordPress és un fitxer o conjunt de fitxers escrits en PHP, que afegeixen o modifiquen una o diverses funcionalitats d’un lloc de WordPress. Poden incloure imatges, CSS i codi JavaScript.
Les extensions poden integrar-se perfectament en un lloc de WordPress, fent servir ganxos (hooks) i funcions predefinides de WordPress que trobem en la Interfície de Programació d’Aplicacions (API) de WordPress.
Els ganxos són funcions que llança WordPress mentre està en funcionament i comproven si en un instant determinat d’aquest funcionament, s’ha d’executar una funció o funcions d’una extensió, si és així, s’executa aquesta funció o funcions. Un exemple seria, el ganxo que comprova quan es carrega el peu de pàgina d’un lloc de WordPress i un cop carregat aquest peu, és quan s’executa la funció o funcions de l’extensió.
Funcions i ganxos de WordPress
Podeu descarregar-vos funcions predefinides en el lloc developer.wordpress.org/apis/. També trobareu un llistat dels ganxos de WordPress en developer.wordpress.org/reference/hooks/.
Els ganxos poden ser de dos tipus:
- Acció (Action Hook): són els ganxos que llança WordPress en punts específics durant l’execució o quan es produeix un esdeveniment concret. Les extensions poden especificar que una o més de les seves funcions s’executin en aquests punts.
- Filtre (Filter Hook): són els ganxos que llança WordPress per a modificar dades abans d’enviar-les a una base de dades o mostrar-les per pantalla. Les extensions poden especificar que una o més de les seves funcions s’executin per a modificar aquestes dades en aquests moments.
El fitxer principal d’una extensió, és aquell on trobem la capçalera estàndard d’informació de l’extensió. En el cas que només estigui formada per un fitxer, aquest serà el fitxer principal. Aquesta capçalera permet a WordPress reconèixer que el fitxer o conjunts de fitxers, són una extensió i afegir-la al llistat d’extensions de la pantalla d’administració dels llocs de WordPress perquè pugui ser activada i fer ús d’ella.
Finalment, hem de tenir en compte que tots els fitxers de les extensions de WordPress que volem utilitzar en un lloc concret de WordPress, es guarden en el seu subdirectori plugins del directori wp-content. Si es tracta d’un únic fitxer, es pot trobar directament en l’arrel del directori plugins, i si es tracta d’un conjunt de fitxers, es trobaran en un subdirectori dins de plugins. El nom d’aquests subdirectoris és el mateix que el del fitxer principal.
Desenvolupant la funcionalitat
Per desenvolupar una extensió, el que hem de fer és crear el seu fitxer o fitxers. Totes les extensions com a mínim han de tenir un fitxer, el fitxer principal. Aquest fitxer és un fitxer PHP com el del següent exemple:
<?php /* Plugin Name: escriureNom Plugin URI: http://localhost Description: Aquesta extensió escriurà el nom "Xesca Tomás Artigues" després del peu de pàgina del lloc de WordPress. Version: 1.0 Author: Xesca Tomás Author URI: http://localhost License: GPL */ /*Executarà la funció escriureNom després de carregar el peu de pàgina del lloc de WordPress mitjançant un ganxo *d'acció (Action Hook)*/ add_action("wp_footer", "escriureNom"); /*Definim la funció escriureNom, què és l'encarregada d'escriure el nom "Xesca Tomás Artigues". *Aquest nom s'escriurà dins un contenidor div, centrat, amb color verd i negreta.*/ function escriureNom(){ echo "<div style='color:green; font-weight: bold; text-align: center;'>Xesca Tomás Artigues</div>"; }
Com podem veure en el fitxer d’exemple, el primer que hem d’escriure, és la capçalera estàndard d’informació de l’extensió. En aquesta capçalera podem trobar la següent informació:
- Plugin Name: el nom de l’extensió. És important que representi el que fa l’extensió. Aquest nom és l’única informació que hem d’afegir obligatòriament en la capçalera. En el cas del fitxer d’exemple, el nom de l’extensió és escriureNom.
- Plugin URI: l’URL de l’extensió. Si l’extensió no té URL, podem posar qualsevol. En el cas del fitxer d’exemple que hem afegit l’URL http://localhost, que mostra una pàgina amb els fitxers i directoris de les aplicacions guardades en el servidor Apache, perquè l’extensió no té URL.
- Description: una breu descripció del que fa l’extensió.
- Version: la versió de l’extensió. En el cas del fitxer d’exemple la versió és 1.0, perquè el fitxer s’ha creat de nou. Si en un futur fem una modificació en l’extensió, haurem de modificar aquest valor pel corresponent.
- Author: el nom de l’autor o autora de l’extensió.
- Author URI: l’URL de l’autor o autora. Si no té URL, podem posar qualsevol, igual que fem amb l’URL de l’extensió. En el cas del fitxer d’exemple, de nou hem afegit l’URL http://localhost, perquè l’autora no té URL.
- License: el tipus de llicència de l’extensió. Moltes extensions utilitzen la mateixa llicència que WordPress, és a dir, GPL2 o compatible amb ella.
Un cop afegida la capçalera, hem d’indicar al sistema on volem o quan volem que s’executin les funcions i implementar o cridar a les funcions que volem que s’executin. En el fitxer de l’exemple, l’extensió implementa una única funció escriureNom() que imprimeix per pantalla, mitjançant echo, el nom Xesca Tomás Artigues de color verd, negreta i centrat dins un contenidor div d’HTML. Aquesta funció s’executarà després que es carregui el peu de pàgina del lloc de WordPress on s’executi l’extensió.
Seguint amb el fitxer d’exemple, per indicar al sistema que s’executi la funció un cop carregat el peu de pàgina, fem servir el ganxo d’acció predefinit wp_footer. Per indicar que la funció escriureNom() s’ha d’executar on indica el ganxo, fem servir la funció predefinida de WordPress add_action, on, com podem veure, el primer paràmetre és el nom del ganxo i el segon, el nom de la funció.
Un cop creat el fitxer o fitxers de l’extensió, només cal guardar-los en el directori plugins de wp-content d’un lloc de WordPress, si volem fer-lo servir en aquest lloc.
Si volem utilitzar un ganxo de tipus filtre en una extensió, podem utilitzar la funció predefinida add_filter.
Posada en marxa
Un cop hem creat el fitxer o fitxers d’una extensió i els hem guardat en el directori plugins de wp-content d’un lloc de WordPress, apareixerà en el llistat d’extensions del lloc. En la figura podem veure com apareix l’extensió escriureNom que hem creat, en el llistat d’extensions:
Nom del fitxer principal
El nom del fitxer principal de les extensions pot ser qualsevol nom, però és convenient que faci referència al nom de l’extensió que definim en la capçalera estàndard d’informació de l’extensió.
Si ens fixem en la figura, veurem que en l’extensió escriureNom apareixen les dades escrites en la capçalera estàndard d’informació de l’extensió del fitxer principal; és a dir, trobarem:
- El nom de l’extensió: escriureNom
- La breu descripció: Aquesta extensió escriurà el nom “Xesca Tomás Artigues” després del peu de pàgina del lloc de WordPress
- La versió de l’extensió: 1.0
- El nom de l’autora: Xesca Tomás. Si cliquem sobre del nom, ens portarà a l’URL de l’autora, és a dir, http://localhost
- Visita el lloc web de l’extensió: que ens porta a l’URL de l’extensió, en aquest cas de nou a http://localhost
Per executar l’extensió, ho hem de fer com ho fem amb qualsevol extensió, és a dir, activant-la. En el cas de l’extensió escriureNom, quan l’activem, si obrim el lloc de WordPress, veurem com el nom Xesca Tomás Artigues, apareix sota del peu de pàgina, centrat, de color verd i en negreta; tal com podem veure a la figura.





