WordPress: evitare gli errori PHP usando le tassonomie
Come reperire le tassonomie di WordPress evitando errori PHP.
Se avete provato ad utilizzare una qualsiasi delle funzioni legate alle tassonomie di WordPress come get_term_link() per costruire ad esempio un menu breadcrumbs vi sarete probabilmente trovati di fronte ad un errore PHP restituito daa WordPress. Perché questo errore non viene gestito dalla classe WP_Error come negli altri casi senza bloccare il sito?
La classe WP_Error, a differenza delle tradizionali classi per la gestione degli errori del più coerente modello OOP di PHP, non ha un metodo __toString(). Questo metodo “magico” permette la conversione della classe sotto forma di stringa testuale.
Leggendo la documentazione relativa alla funzione get_term_link() scopriamo che:
PHP può interrompere la sua esecuzione se si cerca di visualizzare un risultato di errore
(“Catchable fatal error: Object of class WP_Error could not be converted to string”)
L’errore viene restituito quando una data tassonomia (categoria, tag, ecc) non esiste. La documentazione consiglia di:
usare
is_string()per verificare il risultato della funzione qualora non si fosse sicuri che il termine esista.
Infatti se la tassonomia esiste get_term_link() restituisce una stringa con l’URL corrispondente, altrimenti un’istanza della classe WP_Error.
Riassumendo: è sempre bene verificare l’output restituito dalle funzioni delle tassonomie di WordPress soprattutto quando l’output ha tra i valori di ritorno un errore.