Eines
Eines de continguts per a WordPress
Tres eines pròpies per gestionar continguts a WordPress: importació XML,
2 min de lectura
Abans de dedicar-me a l'administració de sistemes vaig passar molt de temps publicant continguts per a clients, i una bona part d'aquella feina era repetitiva: copiar esdeveniments d'una web, enganxar-los al WordPress, tornar a posar la data, la categoria, la imatge. D'allà en van sortir tres eines que em van estalviar hores cada setmana.
De la web de l'ajuntament a l'XML
La primera peça és un extractor d'agendes. Diversos ajuntaments (Arenys de Mar, el Masnou, Premià de Mar) publiquen les seves agendes a la web, i jo les havia de recollir cada setmana. Vaig fer una aplicació amb Tkinter (una llibreria de Python per fer finestres) on cada municipi té el seu mòdul d'extracció i el seu fitxer de configuració en JSON (un format de text per a paràmetres): amb requests i BeautifulSoup —dues llibreries per llegir pàgines web— baixa les agendes i les deixa en XML (un format d'intercanvi de dades amb etiquetes). Un panell de registres desplegable —el diari de cada execució— mostra què ha passat a cada extracció, cosa que arriba a ser més útil del que sembla quan una web canvia d'estructura.
De l'XML al WordPress
La segona eina agafa aquell XML i el publica directament al WordPress amb la seva API REST (la porta d'entrada que permet crear contingut des de fora). El que em va donar més guerra van ser les dates: venien en text i en català, del tipus "del 15 de juliol", i les vaig haver de mapar al format que espera el WordPress. També hi ha un pas de mapeig de camps i de categories, perquè cada font tenia les seves. El primer intent era un únic script monolític —encara el conservo al repositori amb el nom "proceso-archivo inicial sin modular.py"—; quan el vaig tornar a obrir mesos després, el vaig partir en mòduls: interfície, funcionalitats, mapeig de camps i mapeig de categories.
El gestor de marcadors
La tercera eina és l'única que viu dins del WordPress. És un plugin (una extensió instal·lada al gestor de continguts), en un sol fitxer PHP: no un snippet com els de Com eliminar elements del menú d'administració amb Code Snippets, sinó una peça sencera. Crea un tipus de contingut "Bookmarks": hi enganxes una URL (l'adreça d'una pàgina) i el plugin n'extreu el títol, la descripció i el favicon —la icona petita del lloc, convertida a JPG per guardar-la—, i genera el slug (l'adreça curta) a partir del domini. Em servia per mantenir una biblioteca de referències sense dependre dels marcadors del navegador.
Què faria diferent avui
Afegiria proves des del primer dia: quan una web canvia el HTML, l'extractor se n'adona perquè no troba res, però no et diu on s'ha trencat exactament. I separia la configuració de cada municipi encara més del codi, perquè a la pràctica era on tocava gairebé cada mes. Encara així, les tres eines van fer el que havien de fer: que el contingut arribés sol al WordPress.